DETLEF C SDK
Native embedding and package authoring
Loading...
Searching...
No Matches
Resolved Types

Functions

DetlefStatus detlef_type_of (DetlefAccess *a, DetlefHandle handle, DetlefHandle *out)
 
DetlefStatus detlef_type_lookup (DetlefAccess *a, DetlefSlice input, DetlefHandle *out)
 
DetlefStatus detlef_type_array (DetlefAccess *a, DetlefHandle inner, DetlefHandle *out)
 
DetlefStatus detlef_type_optional (DetlefAccess *a, DetlefHandle inner, DetlefHandle *out)
 
DetlefStatus detlef_type_kind (DetlefAccess *a, DetlefHandle handle, DetlefTypeKind *out)
 
DetlefStatus detlef_type_name (DetlefAccess *a, DetlefHandle handle, DetlefText *out)
 
DetlefStatus detlef_type_inner (DetlefAccess *a, DetlefHandle handle, DetlefHandle *out)
 
DetlefStatus detlef_record_type_ensure (DetlefAccess *a, DetlefSlice input, DetlefHandle *out, DetlefBool *created)
 
DetlefStatus detlef_record_type_define (DetlefAccess *a, DetlefHandle handle, const DetlefNamed *fields, size_t count)
 
DetlefStatus detlef_record_type_field_count (DetlefAccess *a, DetlefHandle handle, size_t *out)
 
DetlefStatus detlef_record_type_field (DetlefAccess *a, DetlefHandle handle, size_t index, DetlefText *name_out, DetlefHandle *type_out)
 

Detailed Description

Function Documentation

◆ detlef_record_type_define()

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.

Parameters
aBorrowed callback access. Must not be freed, saved, or used outside its current callback.
handleBorrowed declared record type descriptor to define. Not consumed.
fieldsBorrowed field names paired with resolved type descriptors. Names are copied; handles are not consumed.
countNumber of entries in the supplied array.
Returns
DETLEF_OK on success; otherwise a DetlefStatus error code.

◆ detlef_record_type_ensure()

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.

Parameters
aBorrowed callback access. Must not be freed, saved, or used outside its current callback.
inputBorrowed UTF-8 name, without a trailing NUL requirement. Storage may be released after the call.
[out]outOn 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]createdReceives zero or one as described above. No cleanup is required.
Returns
DETLEF_OK on success; otherwise a DetlefStatus error code.

◆ detlef_record_type_field()

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.

Parameters
aBorrowed callback access. Must not be freed, saved, or used outside its current callback.
handleBorrowed defined record type descriptor. Not consumed.
indexZero-based field index in declaration order.
[out]name_outReceives owned UTF-8 text without a trailing NUL. Must be freed once with detlef_text_free().
[out]type_outOn success, receives an owned resolved type descriptor for the field. Release with detlef_handle_release() unless transferred as a callback result.
Returns
DETLEF_OK on success; otherwise a DetlefStatus error code.

◆ detlef_record_type_field_count()

DetlefStatus detlef_record_type_field_count ( DetlefAccess *  a,
DetlefHandle  handle,
size_t *  out 
)

Read the field count of a defined record type.

Parameters
aBorrowed callback access. Must not be freed, saved, or used outside its current callback.
handleBorrowed defined record type descriptor. Not consumed.
[out]outReceives the number of fields in the record type.
Returns
DETLEF_OK on success; otherwise a DetlefStatus error code.

◆ detlef_type_array()

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.

Parameters
aBorrowed callback access. Must not be freed, saved, or used outside its current callback.
innerBorrowed resolved type descriptor for the array's elements. Not consumed.
[out]outOn success, receives an owned resolved array type descriptor. Release with detlef_handle_release() unless transferred as a callback result.
Returns
DETLEF_OK on success; otherwise a DetlefStatus error code.

◆ detlef_type_inner()

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.

Parameters
aBorrowed callback access. Must not be freed, saved, or used outside its current callback.
handleBorrowed resolved array or optional type descriptor. Not consumed.
[out]outOn success, receives an owned resolved element or inner type descriptor. Release with detlef_handle_release() unless transferred as a callback result.
Returns
DETLEF_OK on success; otherwise a DetlefStatus error code.

◆ detlef_type_kind()

DetlefStatus detlef_type_kind ( DetlefAccess *  a,
DetlefHandle  handle,
DetlefTypeKind *  out 
)

Read the resolved type category using DETLEF_TYPE_* constants.

Parameters
aBorrowed callback access. Must not be freed, saved, or used outside its current callback.
handleBorrowed resolved type descriptor. Not consumed.
[out]outReceives the descriptor's DetlefTypeKind constant.
Returns
DETLEF_OK on success; otherwise a DetlefStatus error code.

◆ detlef_type_lookup()

DetlefStatus detlef_type_lookup ( DetlefAccess *  a,
DetlefSlice  input,
DetlefHandle *  out 
)

Look up an existing named type and return a resolved type descriptor.

Parameters
aBorrowed callback access. Must not be freed, saved, or used outside its current callback.
inputBorrowed UTF-8 name, without a trailing NUL requirement. Storage may be released after the call.
[out]outOn success, receives an owned resolved type descriptor. Release with detlef_handle_release() unless transferred as a callback result.
Returns
DETLEF_OK on success; otherwise a DetlefStatus error code.

◆ detlef_type_name()

DetlefStatus detlef_type_name ( DetlefAccess *  a,
DetlefHandle  handle,
DetlefText *  out 
)

Copy the name of a resolved type. Anonymous types have an empty name.

Parameters
aBorrowed callback access. Must not be freed, saved, or used outside its current callback.
handleBorrowed resolved type descriptor. Not consumed.
[out]outReceives owned UTF-8 text without a trailing NUL. Must be freed once with detlef_text_free().
Returns
DETLEF_OK on success; otherwise a DetlefStatus error code.

◆ detlef_type_of()

DetlefStatus detlef_type_of ( DetlefAccess *  a,
DetlefHandle  handle,
DetlefHandle *  out 
)

Obtain the resolved type descriptor of a runtime value.

Parameters
aBorrowed callback access. Must not be freed, saved, or used outside its current callback.
handleBorrowed runtime value handle whose type is requested. Not consumed.
[out]outOn success, receives an owned resolved type descriptor. Release with detlef_handle_release() unless transferred as a callback result.
Returns
DETLEF_OK on success; otherwise a DetlefStatus error code.

◆ detlef_type_optional()

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.

Parameters
aBorrowed callback access. Must not be freed, saved, or used outside its current callback.
innerBorrowed resolved type descriptor for the optional type's non- none values. Not consumed.
[out]outOn success, receives an owned resolved optional type descriptor. Release with detlef_handle_release() unless transferred as a callback result.
Returns
DETLEF_OK on success; otherwise a DetlefStatus error code.