|
DETLEF C SDK
Native embedding and package authoring
|
| DetlefStatus detlef_record_type_define | ( | DetlefAccess * | a, |
| DetlefHandle | handle, | ||
| const DetlefNamed * | fields, | ||
| size_t | count | ||
| ) |
Define a previously declared record using field names and resolved type handles. Defining an already defined record fails.
| a | Borrowed callback access. Must not be freed, saved, or used outside its current callback. |
| handle | Borrowed declared record type descriptor to define. Not consumed. |
| fields | Borrowed field names paired with resolved type descriptors. Names are copied; handles are not consumed. |
| count | Number of entries in the supplied array. |
| DetlefStatus detlef_record_type_ensure | ( | DetlefAccess * | a, |
| DetlefSlice | input, | ||
| DetlefHandle * | out, | ||
| DetlefBool * | created | ||
| ) |
Look up or declare a named record type. The created flag reports whether a new declaration was inserted.
| a | Borrowed callback access. Must not be freed, saved, or used outside its current callback. | |
| input | Borrowed UTF-8 name, without a trailing NUL requirement. Storage may be released after the call. | |
| [out] | out | On success, receives an owned resolved record type descriptor, whether newly declared or already registered. Release with detlef_handle_release() unless transferred as a callback result. |
| [out] | created | Receives zero or one as described above. No cleanup is required. |
| DetlefStatus detlef_record_type_field | ( | DetlefAccess * | a, |
| DetlefHandle | handle, | ||
| size_t | index, | ||
| DetlefText * | name_out, | ||
| DetlefHandle * | type_out | ||
| ) |
Inspect one field of a defined record by zero-based index.
| a | Borrowed callback access. Must not be freed, saved, or used outside its current callback. | |
| handle | Borrowed defined record type descriptor. Not consumed. | |
| index | Zero-based field index in declaration order. | |
| [out] | name_out | Receives owned UTF-8 text without a trailing NUL. Must be freed once with detlef_text_free(). |
| [out] | type_out | On success, receives an owned resolved type descriptor for the field. Release with detlef_handle_release() unless transferred as a callback result. |
| DetlefStatus detlef_record_type_field_count | ( | DetlefAccess * | a, |
| DetlefHandle | handle, | ||
| size_t * | out | ||
| ) |
Read the field count of a defined record type.
| a | Borrowed callback access. Must not be freed, saved, or used outside its current callback. | |
| handle | Borrowed defined record type descriptor. Not consumed. | |
| [out] | out | Receives the number of fields in the record type. |
| DetlefStatus detlef_type_array | ( | DetlefAccess * | a, |
| DetlefHandle | inner, | ||
| DetlefHandle * | out | ||
| ) |
Create or look up an array type whose element type is the supplied resolved type.
| a | Borrowed callback access. Must not be freed, saved, or used outside its current callback. | |
| inner | Borrowed resolved type descriptor for the array's elements. Not consumed. | |
| [out] | out | On success, receives an owned resolved array type descriptor. Release with detlef_handle_release() unless transferred as a callback result. |
| DetlefStatus detlef_type_inner | ( | DetlefAccess * | a, |
| DetlefHandle | handle, | ||
| DetlefHandle * | out | ||
| ) |
Obtain the inner resolved type of an array or optional type. Other type kinds are rejected.
| a | Borrowed callback access. Must not be freed, saved, or used outside its current callback. | |
| handle | Borrowed resolved array or optional type descriptor. Not consumed. | |
| [out] | out | On success, receives an owned resolved element or inner type descriptor. Release with detlef_handle_release() unless transferred as a callback result. |
| DetlefStatus detlef_type_kind | ( | DetlefAccess * | a, |
| DetlefHandle | handle, | ||
| DetlefTypeKind * | out | ||
| ) |
Read the resolved type category using DETLEF_TYPE_* constants.
| a | Borrowed callback access. Must not be freed, saved, or used outside its current callback. | |
| handle | Borrowed resolved type descriptor. Not consumed. | |
| [out] | out | Receives the descriptor's DetlefTypeKind constant. |
| DetlefStatus detlef_type_lookup | ( | DetlefAccess * | a, |
| DetlefSlice | input, | ||
| DetlefHandle * | out | ||
| ) |
Look up an existing named type and return a resolved type descriptor.
| a | Borrowed callback access. Must not be freed, saved, or used outside its current callback. | |
| input | Borrowed UTF-8 name, without a trailing NUL requirement. Storage may be released after the call. | |
| [out] | out | On success, receives an owned resolved type descriptor. Release with detlef_handle_release() unless transferred as a callback result. |
| DetlefStatus detlef_type_name | ( | DetlefAccess * | a, |
| DetlefHandle | handle, | ||
| DetlefText * | out | ||
| ) |
Copy the name of a resolved type. Anonymous types have an empty name.
| a | Borrowed callback access. Must not be freed, saved, or used outside its current callback. | |
| handle | Borrowed resolved type descriptor. Not consumed. | |
| [out] | out | Receives owned UTF-8 text without a trailing NUL. Must be freed once with detlef_text_free(). |
| DetlefStatus detlef_type_of | ( | DetlefAccess * | a, |
| DetlefHandle | handle, | ||
| DetlefHandle * | out | ||
| ) |
Obtain the resolved type descriptor of a runtime value.
| a | Borrowed callback access. Must not be freed, saved, or used outside its current callback. | |
| handle | Borrowed runtime value handle whose type is requested. Not consumed. | |
| [out] | out | On success, receives an owned resolved type descriptor. Release with detlef_handle_release() unless transferred as a callback result. |
| DetlefStatus detlef_type_optional | ( | DetlefAccess * | a, |
| DetlefHandle | inner, | ||
| DetlefHandle * | out | ||
| ) |
Create or look up an optional type whose inner type is the supplied resolved type.
| a | Borrowed callback access. Must not be freed, saved, or used outside its current callback. | |
| inner | Borrowed resolved type descriptor for the optional type's non- none values. Not consumed. | |
| [out] | out | On success, receives an owned resolved optional type descriptor. Release with detlef_handle_release() unless transferred as a callback result. |