diff --git a/meta/meos-meta.json b/meta/meos-meta.json index 211ccaf..b8961c0 100644 --- a/meta/meos-meta.json +++ b/meta/meos-meta.json @@ -1,4 +1,15 @@ { + "$schema": { + "_doc": "Per-function structural metadata merged into meos-idl.json at parse time. Each entry sits at functions..shape and overrides what bindings can infer from the C signature alone. Field semantics:", + "shape.skip": "Reason string; codegens omit this function entirely.", + "shape.arrayReturn": "The function's return value is an array. lengthFrom describes where the length comes from.", + "shape.arrayReturn.lengthFrom.kind=accessor": "Call func(arg) on one of the function's inputs to get the length. Optional castTo lets the accessor receive a different type (struct-layout-compatible upcast).", + "shape.arrayReturn.lengthFrom.kind=param": "Read the length from the named output parameter of the same function.", + "shape.outputArrays": "List of additional output parameters that are parallel arrays sharing the primary length source.", + "shape.namedOutputs": "List of parameters that are scalar out-parameters but do not use the canonical result/value names.", + "shape.nullable": "List of parameter names that accept NULL. Lets bindings emit optional/None-friendly signatures.", + "shape.arrayInputGroup": "N parallel input arrays sharing one count. Members listed in arrayInputGroup.nullable accept NULL/nil." + }, "functions": { "tpointseq_make": { "ownership": "caller", @@ -32,11 +43,142 @@ "interpolation": true, "subtype": "TPoint" } - } + }, + + "bigintset_values": { "shape": { "arrayReturn": { "lengthFrom": { "kind": "accessor", "func": "set_num_values", "arg": "s" } } } }, + "dateset_values": { "shape": { "arrayReturn": { "lengthFrom": { "kind": "accessor", "func": "set_num_values", "arg": "s" } } } }, + "floatset_values": { "shape": { "arrayReturn": { "lengthFrom": { "kind": "accessor", "func": "set_num_values", "arg": "s" } } } }, + "intset_values": { "shape": { "arrayReturn": { "lengthFrom": { "kind": "accessor", "func": "set_num_values", "arg": "s" } } } }, + "textset_values": { "shape": { "arrayReturn": { "lengthFrom": { "kind": "accessor", "func": "set_num_values", "arg": "s" } } } }, + "tstzset_values": { "shape": { "arrayReturn": { "lengthFrom": { "kind": "accessor", "func": "set_num_values", "arg": "s" } } } }, + "geoset_values": { "shape": { "arrayReturn": { "lengthFrom": { "kind": "accessor", "func": "set_num_values", "arg": "s" } } } }, + "npointset_values": { "shape": { "arrayReturn": { "lengthFrom": { "kind": "accessor", "func": "set_num_values", "arg": "s" } } } }, + "cbufferset_values": { "shape": { "arrayReturn": { "lengthFrom": { "kind": "accessor", "func": "set_num_values", "arg": "s" } } } }, + "poseset_values": { "shape": { "arrayReturn": { "lengthFrom": { "kind": "accessor", "func": "set_num_values", "arg": "s" } } } }, + + "spanset_spanarr": { "shape": { "arrayReturn": { "lengthFrom": { "kind": "accessor", "func": "spanset_num_spans", "arg": "ss" } } } }, + "spanset_sps": { "shape": { "arrayReturn": { "lengthFrom": { "kind": "accessor", "func": "spanset_num_spans", "arg": "ss" } } } }, + + "tsequence_insts_p": { "shape": { "arrayReturn": { "lengthFrom": { "kind": "accessor", "func": "temporal_num_instants", "arg": "seq", "castTo": "const Temporal *" } } } }, + "tsequenceset_insts_p": { "shape": { "arrayReturn": { "lengthFrom": { "kind": "accessor", "func": "tsequenceset_num_instants", "arg": "ss" } } } }, + "tsequenceset_sequences_p": { "shape": { "arrayReturn": { "lengthFrom": { "kind": "accessor", "func": "temporal_num_sequences", "arg": "ss", "castTo": "const Temporal *" } } } }, + + "temporal_time_split": { + "shape": { + "arrayReturn": { "lengthFrom": { "kind": "param", "name": "count" } }, + "outputArrays": [{ "param": "time_bins" }] + } + }, + "tfloat_value_split": { + "shape": { + "arrayReturn": { "lengthFrom": { "kind": "param", "name": "count" } }, + "outputArrays": [{ "param": "bins" }] + } + }, + "tfloat_value_time_split": { + "shape": { + "arrayReturn": { "lengthFrom": { "kind": "param", "name": "count" } }, + "outputArrays": [{ "param": "value_bins" }, { "param": "time_bins" }] + } + }, + "tint_value_split": { + "shape": { + "arrayReturn": { "lengthFrom": { "kind": "param", "name": "count" } }, + "outputArrays": [{ "param": "bins" }] + } + }, + "tint_value_time_split": { + "shape": { + "arrayReturn": { "lengthFrom": { "kind": "param", "name": "count" } }, + "outputArrays": [{ "param": "value_bins" }, { "param": "time_bins" }] + } + }, + + "tgeo_space_split": { + "shape": { + "arrayReturn": { "lengthFrom": { "kind": "param", "name": "count" } }, + "outputArrays": [{ "param": "space_bins" }] + } + }, + "tgeo_space_time_split": { + "shape": { + "arrayReturn": { "lengthFrom": { "kind": "param", "name": "count" } }, + "outputArrays": [{ "param": "space_bins" }, { "param": "time_bins" }] + } + }, + + "stbox_quad_split": { + "shape": { "arrayReturn": { "lengthFrom": { "kind": "param", "name": "count" } } } + }, + + "tpoint_as_mvtgeom": { + "shape": { + "outputArrays": [ + { "param": "gsarr", "lengthFrom": { "kind": "param", "name": "count" } }, + { "param": "timesarr", "lengthFrom": { "kind": "param", "name": "count" } } + ] + } + }, + + "tpointseq_make_coords": { + "shape": { + "arrayInputGroup": { + "params": ["xcoords", "ycoords", "zcoords", "times"], + "count": "count", + "nullable": ["zcoords", "times"] + } + } + }, + + "tempsubtype_from_string": { "shape": { "namedOutputs": ["subtype"] } }, + "geom_min_bounding_radius": { "shape": { "namedOutputs": ["radius"] } }, + + "ttext_values": { "shape": { "arrayReturn": { "lengthFrom": { "kind": "param", "name": "count" } } } }, + + "tbox_as_hexwkb": { "shape": { "outputArrays": [{ "param": "size" }] } }, + "stbox_as_hexwkb": { "shape": { "outputArrays": [{ "param": "size" }] } }, + "tintbox_value_time_tiles": { "shape": { "outputArrays": [{ "param": "count" }], "nullable": ["xorigin", "torigin"] } }, + "tfloatbox_value_time_tiles":{ "shape": { "outputArrays": [{ "param": "count" }], "nullable": ["xorigin", "torigin"] } }, + "stbox_space_time_tiles": { "shape": { "outputArrays": [{ "param": "count" }], "nullable": ["duration"] } }, + + "meos_initialize": { "shape": { "nullable": ["tz_str"] } }, + "meos_set_intervalstyle": { "shape": { "nullable": ["extra"] } }, + "temporal_append_tinstant": { "shape": { "nullable": ["maxt"] } }, + "temporal_as_mfjson": { "shape": { "nullable": ["srs"] } }, + "tstzspan_shift_scale": { "shape": { "nullable": ["shift", "duration"] } }, + "tstzset_shift_scale": { "shape": { "nullable": ["shift", "duration"] } }, + "tstzspanset_shift_scale": { "shape": { "nullable": ["shift", "duration"] } }, + "temporal_shift_scale_time": { "shape": { "nullable": ["shift", "duration"] } }, + "tbox_make": { "shape": { "nullable": ["p", "s"] } }, + "stbox_make": { "shape": { "nullable": ["p", "s"] } }, + "stbox_shift_scale_time": { "shape": { "nullable": ["shift", "duration"] } }, + "temporal_tcount_transfn": { "shape": { "nullable": ["state", "interval"] } }, + "temporal_extent_transfn": { "shape": { "nullable": ["p"] } }, + "tnumber_extent_transfn": { "shape": { "nullable": ["box"] } }, + "tspatial_extent_transfn": { "shape": { "nullable": ["box"] } }, + "tbool_tand_transfn": { "shape": { "nullable": ["state"] } }, + "tbool_tor_transfn": { "shape": { "nullable": ["state"] } }, + "tbox_shift_scale_time": { "shape": { "nullable": ["shift", "duration"] } }, + "tint_tmin_transfn": { "shape": { "nullable": ["state"] } }, + "tfloat_tmin_transfn": { "shape": { "nullable": ["state"] } }, + "tint_tmax_transfn": { "shape": { "nullable": ["state"] } }, + "tfloat_tmax_transfn": { "shape": { "nullable": ["state"] } }, + "tint_tsum_transfn": { "shape": { "nullable": ["state"] } }, + "tfloat_tsum_transfn": { "shape": { "nullable": ["state"] } }, + "tnumber_tavg_transfn": { "shape": { "nullable": ["state"] } }, + "ttext_tmin_transfn": { "shape": { "nullable": ["state"] } }, + "ttext_tmax_transfn": { "shape": { "nullable": ["state"] } }, + "timestamptz_tcount_transfn":{ "shape": { "nullable": ["state", "interval"] } }, + "tstzset_tcount_transfn": { "shape": { "nullable": ["state", "interval"] } }, + "tstzspan_tcount_transfn": { "shape": { "nullable": ["state", "interval"] } }, + "tstzspanset_tcount_transfn":{ "shape": { "nullable": ["state", "interval"] } }, + "timestamptz_extent_transfn":{ "shape": { "nullable": ["p"] } }, + "tsequenceset_make_gaps": { "shape": { "nullable": ["maxt"] } }, + "geo_as_geojson": { "shape": { "nullable": ["srs"] } } }, "types": { "TSequence": { "meosType": "TPointSeq" }, "TInstant": { "meosType": "TPointInst" }, "interpType":{ "meosType": "Interpolation" } } -} \ No newline at end of file +}