gir.core icon indicating copy to clipboard operation
gir.core copied to clipboard

Support Out parameters for Records and Classes

Open badcel opened this issue 1 year ago • 0 comments

Support Out parameters for Records and Classes.

Implementation for both should be similar. This could require heavy refactorings as out parameters inverse the direction of flow similar to return values. Out-Parameters in a callback would double inverse the direction of flow.

One idea would be to have a completely new set of converters for out datatypes in addition to the currently available converters for "ToNative" / "ToManaged".

Keep in mind that there are already converters for primitive value types, which support out parameters. Those should probably be split up into two converters to align with the new converters for classes / records.

  • [ ] TypedOpaqueRecord: Method with out parameter, caller allocates 0, transfer ownership full, optional, allow none (see https://docs.gtk.org/gio/vfunc.MenuAttributeIter.get_next.html)
  • [ ] TypedOpaqueRecord: Method with out parameter, caller allocates 0, transfer ownership none, optional, allow none (see https://docs.gtk.org/gio/vfunc.ActionGroup.query_action.html parameter_type)
  • [ ] TypedOpaqueRecord: Callback with out parameter, caller allocates 0, transfer ownership full, optional, allow none (see https://docs.gtk.org/gio/vfunc.MenuAttributeIter.get_next.html)
  • [ ] TypedOpaqueRecord: Callback with out parameter, caller allocates 0, transfer ownership none, optional, allow none (see https://docs.gtk.org/gio/vfunc.ActionGroup.query_action.html parameter_type)

badcel avatar Aug 30 '23 09:08 badcel