/docs/interop.md: update

This commit is contained in:
veclavtalica 2025-01-03 11:49:00 +03:00
parent f4a3298906
commit 62d738cbbe

View File

@ -4,13 +4,13 @@ for that certain considerations are taken:
* number of public api calls is kept at the minimum * number of public api calls is kept at the minimum
* procedure parameters can only use basic types, no aggregates, with exception of Vec/Matrix types and alike, * procedure parameters can only use basic types, no aggregates, with exception of Vec/Matrix types and alike,
with no expectation on new additions (see [/include/twn_types.h](../include/twn_types.h)) with no new additions, ever (see [/include/twn_types.h](../include/twn_types.h))
* optionals can be expressed via pointer passage of value primitives, assumed immutable, with the NULL expressing default * optionals can be expressed via pointer passage of value primitives, assumed immutable, with the NULL expressing default value
* no opaque types, only keys * no opaque types, only keys if needed
* pointers to pointers aren't allowed * pointers to pointers aren't allowed
* when mutation on input is done, - it shouldn't be achieved from a mutable pointer, but the return value * when mutation on input is done, - it shouldn't be achieved by a mutable pointer, but the return value
* return value could be a simple aggregate that is translatable to pure data dictionary * return value could be a simple aggregate that is translatable to a dictionary of primitives
* module prefix is used for namespacing, actual symbols come after the prefix (`<module>_<symbol>`) * module prefix is used for namespacing, actual symbols come after the prefix (`<module>_<symbol>`)
* symbols should not contain numerics at the start nor after the namespace prefix * symbols should not contain numerics at the start nor after the namespace prefix
* 32 bit floating point is the only numeric type * 32 bit floating point is the only numeric type
* [/include/twn_api.json](../include/twn_api.json) file is hand-kept with a schema to aid automatic binding generation and tooling * [/include/twn_api.json](../share/twn_api.json) file is hand-kept with a schema to aid automatic binding generation and tooling