Function-Pointer Type API
Protocol 1 custom types are registered using explicit function pointers instead of thevsql::make_type<> template. The function signatures differ from the Protocol 3 equivalents — they take raw pointers and lengths rather than Arg and Result objects.
Function Signatures
Registration
vsql::make_type<kMyTypeName>() (with a compile-time string NTTP) is the preferred form. make_type(MYTYPE) (no template parameter) is the Protocol 1 form — support for it will be dropped after 0.0.5.
Raw ABI Style (Functions)
Protocol 1 VDF implementations can pass the raw C structs directly instead of using typed wrappers. This style will be dropped after 0.0.5 — use typed wrappers for all new code.Aggregate Registration in Protocol 1
For aggregates,.clear<>() and .accumulate<>() accept raw ABI function pointer signatures. .prerun<>() and .postrun<>() do not — the builder requires typed signatures (void(PrerunArgs, PrerunResult) and void(PostrunArgs)) even for Protocol 1 extensions. Use the typed aggregate approach for all new code.

