Wasmtime
component/types/val.h File Reference
#include <wasmtime/conf.h>
#include <stdint.h>
#include <wasmtime/component/types/resource.h>

Go to the source code of this file.

Data Structures

union  wasmtime_component_valtype_union
 Represents a single value type in the component model. More...
 
struct  wasmtime_component_valtype_t
 Represents a single value type in the component model. More...
 

Macros

#define WASMTIME_COMPONENT_VALTYPE_BOOL   0
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a bool WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_S8   1
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a s8 WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_S16   2
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a s16 WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_S32   3
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a s32 WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_S64   4
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a s64 WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_U8   5
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a u8 WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_U16   6
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a u16 WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_U32   7
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a u32 WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_U64   8
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a u64 WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_F32   9
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a f32 WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_F64   10
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a f64 WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_CHAR   11
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a char WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_STRING   12
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a string WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_LIST   13
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a list WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_RECORD   14
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a record WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_TUPLE   15
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a tuple WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_VARIANT   16
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a variant WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_ENUM   17
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a enum WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_OPTION   18
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a option WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_RESULT   19
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a result WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_FLAGS   20
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a flags WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_OWN   21
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a resource own WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_BORROW   22
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a resource borrow WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_FUTURE   23
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a future WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_STREAM   24
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is a stream WIT type.
 
#define WASMTIME_COMPONENT_VALTYPE_ERROR_CONTEXT   25
 Value of wasmtime_component_valtype_kind_t meaning that wasmtime_component_valtype_t is an error context WIT type.
 

Typedefs

typedef struct wasmtime_component_list_type wasmtime_component_list_type_t
 Opaque type representing a component list type.
 
typedef struct wasmtime_component_record_type wasmtime_component_record_type_t
 Opaque type representing a component record type.
 
typedef struct wasmtime_component_tuple_type wasmtime_component_tuple_type_t
 Opaque type representing a component tuple type.
 
typedef struct wasmtime_component_variant_type wasmtime_component_variant_type_t
 Opaque type representing a component variant type.
 
typedef struct wasmtime_component_enum_type wasmtime_component_enum_type_t
 Opaque type representing a component enum type.
 
typedef struct wasmtime_component_option_type wasmtime_component_option_type_t
 Opaque type representing a component option type.
 
typedef struct wasmtime_component_result_type wasmtime_component_result_type_t
 Opaque type representing a component result type.
 
typedef struct wasmtime_component_flags_type wasmtime_component_flags_type_t
 Opaque type representing a component flags type.
 
typedef struct wasmtime_component_future_type wasmtime_component_future_type_t
 Opaque type representing a component future type.
 
typedef struct wasmtime_component_stream_type wasmtime_component_stream_type_t
 Opaque type representing a component stream type.
 
typedef uint8_t wasmtime_component_valtype_kind_t
 Discriminant used in wasmtime_component_valtype_t::kind.
 
typedef union wasmtime_component_valtype_union wasmtime_component_valtype_union_t
 Represents a single value type in the component model.
 
typedef struct wasmtime_component_valtype_t wasmtime_component_valtype_t
 Represents a single value type in the component model.
 

Functions

WASM_API_EXTERN wasmtime_component_list_type_twasmtime_component_list_type_clone (const wasmtime_component_list_type_t *ty)
 Clones a component list type. More...
 
WASM_API_EXTERN bool wasmtime_component_list_type_equal (const wasmtime_component_list_type_t *a, const wasmtime_component_list_type_t *b)
 Compares two component list types for equality.
 
WASM_API_EXTERN void wasmtime_component_list_type_delete (wasmtime_component_list_type_t *ptr)
 Deallocates a component list type.
 
WASM_API_EXTERN void wasmtime_component_list_type_element (const wasmtime_component_list_type_t *ty, struct wasmtime_component_valtype_t *type_ret)
 Returns the element type of a component list type. More...
 
WASM_API_EXTERN wasmtime_component_record_type_twasmtime_component_record_type_clone (const wasmtime_component_record_type_t *ty)
 Clones a component record type. More...
 
WASM_API_EXTERN bool wasmtime_component_record_type_equal (const wasmtime_component_record_type_t *a, const wasmtime_component_record_type_t *b)
 Compares two component record types for equality.
 
WASM_API_EXTERN void wasmtime_component_record_type_delete (wasmtime_component_record_type_t *ptr)
 Deallocates a component record type.
 
WASM_API_EXTERN size_t wasmtime_component_record_type_field_count (const wasmtime_component_record_type_t *ty)
 Returns the number of fields in a component record type.
 
WASM_API_EXTERN bool wasmtime_component_record_type_field_nth (const wasmtime_component_record_type_t *ty, size_t nth, const char **name_ret, size_t *name_len_ret, struct wasmtime_component_valtype_t *type_ret)
 Returns the nth field in a component record type. More...
 
WASM_API_EXTERN wasmtime_component_tuple_type_twasmtime_component_tuple_type_clone (const wasmtime_component_tuple_type_t *ty)
 Clones a component tuple type. More...
 
WASM_API_EXTERN bool wasmtime_component_tuple_type_equal (const wasmtime_component_tuple_type_t *a, const wasmtime_component_tuple_type_t *b)
 Compares two component tuple types for equality.
 
WASM_API_EXTERN void wasmtime_component_tuple_type_delete (wasmtime_component_tuple_type_t *ptr)
 Deallocates a component tuple type.
 
WASM_API_EXTERN size_t wasmtime_component_tuple_type_types_count (const wasmtime_component_tuple_type_t *ty)
 Returns the number of types in a component tuple type.
 
WASM_API_EXTERN bool wasmtime_component_tuple_type_types_nth (const wasmtime_component_tuple_type_t *ty, size_t nth, struct wasmtime_component_valtype_t *type_ret)
 Returns the nth type in a component tuple type. More...
 
WASM_API_EXTERN wasmtime_component_variant_type_twasmtime_component_variant_type_clone (const wasmtime_component_variant_type_t *ty)
 Clones a component variant type. More...
 
WASM_API_EXTERN bool wasmtime_component_variant_type_equal (const wasmtime_component_variant_type_t *a, const wasmtime_component_variant_type_t *b)
 Compares two component variant types for equality.
 
WASM_API_EXTERN void wasmtime_component_variant_type_delete (wasmtime_component_variant_type_t *ptr)
 Deallocates a component variant type.
 
WASM_API_EXTERN size_t wasmtime_component_variant_type_case_count (const wasmtime_component_variant_type_t *ty)
 Returns the number of cases in a component variant type.
 
WASM_API_EXTERN bool wasmtime_component_variant_type_case_nth (const wasmtime_component_variant_type_t *ty, size_t nth, const char **name_ret, size_t *name_len_ret, bool *has_payload_ret, struct wasmtime_component_valtype_t *payload_ret)
 Returns the nth case in a component variant type. The returned payload type must be deallocated with wasmtime_component_valtype_delete.
 
WASM_API_EXTERN wasmtime_component_enum_type_twasmtime_component_enum_type_clone (const wasmtime_component_enum_type_t *ty)
 Clones a component enum type. More...
 
WASM_API_EXTERN bool wasmtime_component_enum_type_equal (const wasmtime_component_enum_type_t *a, const wasmtime_component_enum_type_t *b)
 Compares two component enum types for equality.
 
WASM_API_EXTERN void wasmtime_component_enum_type_delete (wasmtime_component_enum_type_t *ptr)
 Deallocates a component enum type.
 
WASM_API_EXTERN size_t wasmtime_component_enum_type_names_count (const wasmtime_component_enum_type_t *ty)
 Returns the number of names in a component enum type.
 
WASM_API_EXTERN bool wasmtime_component_enum_type_names_nth (const wasmtime_component_enum_type_t *ty, size_t nth, const char **name_ret, size_t *name_len_ret)
 Returns the nth name in a component enum type.
 
WASM_API_EXTERN wasmtime_component_option_type_twasmtime_component_option_type_clone (const wasmtime_component_option_type_t *ty)
 Clones a component option type. More...
 
WASM_API_EXTERN bool wasmtime_component_option_type_equal (const wasmtime_component_option_type_t *a, const wasmtime_component_option_type_t *b)
 Compares two component option types for equality.
 
WASM_API_EXTERN void wasmtime_component_option_type_delete (wasmtime_component_option_type_t *ptr)
 Deallocates a component option type.
 
WASM_API_EXTERN void wasmtime_component_option_type_ty (const wasmtime_component_option_type_t *ty, struct wasmtime_component_valtype_t *type_ret)
 Returns the inner type of a component option type. More...
 
WASM_API_EXTERN wasmtime_component_result_type_twasmtime_component_result_type_clone (const wasmtime_component_result_type_t *ty)
 Clones a component result type. More...
 
WASM_API_EXTERN bool wasmtime_component_result_type_equal (const wasmtime_component_result_type_t *a, const wasmtime_component_result_type_t *b)
 Compares two component result types for equality.
 
WASM_API_EXTERN void wasmtime_component_result_type_delete (wasmtime_component_result_type_t *ptr)
 Deallocates a component result type.
 
WASM_API_EXTERN bool wasmtime_component_result_type_ok (const wasmtime_component_result_type_t *ty, struct wasmtime_component_valtype_t *type_ret)
 Returns the ok type of a component result type. The returned type must be deallocated with wasmtime_component_valtype_delete.
 
WASM_API_EXTERN bool wasmtime_component_result_type_err (const wasmtime_component_result_type_t *ty, struct wasmtime_component_valtype_t *type_ret)
 Returns the err type of a component result type. The returned type must be deallocated with wasmtime_component_valtype_delete.
 
WASM_API_EXTERN wasmtime_component_flags_type_twasmtime_component_flags_type_clone (const wasmtime_component_flags_type_t *ty)
 Clones a component flags type. More...
 
WASM_API_EXTERN bool wasmtime_component_flags_type_equal (const wasmtime_component_flags_type_t *a, const wasmtime_component_flags_type_t *b)
 Compares two component flags types for equality.
 
WASM_API_EXTERN void wasmtime_component_flags_type_delete (wasmtime_component_flags_type_t *ptr)
 Deallocates a component flags type.
 
WASM_API_EXTERN size_t wasmtime_component_flags_type_names_count (const wasmtime_component_flags_type_t *ty)
 Returns the number of names in a component flags type.
 
WASM_API_EXTERN bool wasmtime_component_flags_type_names_nth (const wasmtime_component_flags_type_t *ty, size_t nth, const char **name_ret, size_t *name_len_ret)
 Returns the nth name in a component flags type.
 
WASM_API_EXTERN wasmtime_component_future_type_twasmtime_component_future_type_clone (const wasmtime_component_future_type_t *ty)
 Clones a component future type. More...
 
WASM_API_EXTERN bool wasmtime_component_future_type_equal (const wasmtime_component_future_type_t *a, const wasmtime_component_future_type_t *b)
 Compares two component future types for equality.
 
WASM_API_EXTERN void wasmtime_component_future_type_delete (wasmtime_component_future_type_t *ptr)
 Deallocates a component future type.
 
WASM_API_EXTERN bool wasmtime_component_future_type_ty (const wasmtime_component_future_type_t *ty, struct wasmtime_component_valtype_t *type_ret)
 Returns the inner type of a component future type. More...
 
WASM_API_EXTERN wasmtime_component_stream_type_twasmtime_component_stream_type_clone (const wasmtime_component_stream_type_t *ty)
 Clones a component stream type. More...
 
WASM_API_EXTERN bool wasmtime_component_stream_type_equal (const wasmtime_component_stream_type_t *a, const wasmtime_component_stream_type_t *b)
 Compares two component stream types for equality.
 
WASM_API_EXTERN void wasmtime_component_stream_type_delete (wasmtime_component_stream_type_t *ptr)
 Deallocates a component stream type.
 
WASM_API_EXTERN bool wasmtime_component_stream_type_ty (const wasmtime_component_stream_type_t *ty, struct wasmtime_component_valtype_t *type_ret)
 Returns the inner type of a component stream type. More...
 
WASM_API_EXTERN void wasmtime_component_valtype_clone (const wasmtime_component_valtype_t *ty, wasmtime_component_valtype_t *out)
 Clones a component value type. More...
 
WASM_API_EXTERN bool wasmtime_component_valtype_equal (const wasmtime_component_valtype_t *a, const wasmtime_component_valtype_t *b)
 Compares two component value types for equality.
 
WASM_API_EXTERN void wasmtime_component_valtype_delete (wasmtime_component_valtype_t *ptr)
 Deallocates a component value type.
 

Function Documentation

◆ wasmtime_component_enum_type_clone()

WASM_API_EXTERN wasmtime_component_enum_type_t * wasmtime_component_enum_type_clone ( const wasmtime_component_enum_type_t ty)

Clones a component enum type.

The returned pointer must be deallocated with wasmtime_component_enum_type_delete.

◆ wasmtime_component_flags_type_clone()

WASM_API_EXTERN wasmtime_component_flags_type_t * wasmtime_component_flags_type_clone ( const wasmtime_component_flags_type_t ty)

Clones a component flags type.

The returned pointer must be deallocated with wasmtime_component_flags_type_delete.

◆ wasmtime_component_future_type_clone()

WASM_API_EXTERN wasmtime_component_future_type_t * wasmtime_component_future_type_clone ( const wasmtime_component_future_type_t ty)

Clones a component future type.

The returned pointer must be deallocated with wasmtime_component_future_type_delete.

◆ wasmtime_component_future_type_ty()

WASM_API_EXTERN bool wasmtime_component_future_type_ty ( const wasmtime_component_future_type_t ty,
struct wasmtime_component_valtype_t type_ret 
)

Returns the inner type of a component future type.

The returned type must be deallocated with wasmtime_component_valtype_delete.

◆ wasmtime_component_list_type_clone()

WASM_API_EXTERN wasmtime_component_list_type_t * wasmtime_component_list_type_clone ( const wasmtime_component_list_type_t ty)

Clones a component list type.

The returned pointer must be deallocated with wasmtime_component_list_type_delete.

◆ wasmtime_component_list_type_element()

WASM_API_EXTERN void wasmtime_component_list_type_element ( const wasmtime_component_list_type_t ty,
struct wasmtime_component_valtype_t type_ret 
)

Returns the element type of a component list type.

The returned type must be deallocated with wasmtime_component_valtype_delete.

◆ wasmtime_component_option_type_clone()

WASM_API_EXTERN wasmtime_component_option_type_t * wasmtime_component_option_type_clone ( const wasmtime_component_option_type_t ty)

Clones a component option type.

The returned pointer must be deallocated with wasmtime_component_option_type_delete.

◆ wasmtime_component_option_type_ty()

WASM_API_EXTERN void wasmtime_component_option_type_ty ( const wasmtime_component_option_type_t ty,
struct wasmtime_component_valtype_t type_ret 
)

Returns the inner type of a component option type.

The returned type must be deallocated with wasmtime_component_valtype_delete.

◆ wasmtime_component_record_type_clone()

WASM_API_EXTERN wasmtime_component_record_type_t * wasmtime_component_record_type_clone ( const wasmtime_component_record_type_t ty)

Clones a component record type.

The returned pointer must be deallocated with wasmtime_component_record_type_delete.

◆ wasmtime_component_record_type_field_nth()

WASM_API_EXTERN bool wasmtime_component_record_type_field_nth ( const wasmtime_component_record_type_t ty,
size_t  nth,
const char **  name_ret,
size_t *  name_len_ret,
struct wasmtime_component_valtype_t type_ret 
)

Returns the nth field in a component record type.

The returned type must be deallocated with wasmtime_component_valtype_delete.

◆ wasmtime_component_result_type_clone()

WASM_API_EXTERN wasmtime_component_result_type_t * wasmtime_component_result_type_clone ( const wasmtime_component_result_type_t ty)

Clones a component result type.

The returned pointer must be deallocated with wasmtime_component_result_type_delete.

◆ wasmtime_component_stream_type_clone()

WASM_API_EXTERN wasmtime_component_stream_type_t * wasmtime_component_stream_type_clone ( const wasmtime_component_stream_type_t ty)

Clones a component stream type.

The returned pointer must be deallocated with wasmtime_component_stream_type_delete.

◆ wasmtime_component_stream_type_ty()

WASM_API_EXTERN bool wasmtime_component_stream_type_ty ( const wasmtime_component_stream_type_t ty,
struct wasmtime_component_valtype_t type_ret 
)

Returns the inner type of a component stream type.

The returned type must be deallocated with wasmtime_component_valtype_delete.

◆ wasmtime_component_tuple_type_clone()

WASM_API_EXTERN wasmtime_component_tuple_type_t * wasmtime_component_tuple_type_clone ( const wasmtime_component_tuple_type_t ty)

Clones a component tuple type.

The returned pointer must be deallocated with wasmtime_component_tuple_type_delete.

◆ wasmtime_component_tuple_type_types_nth()

WASM_API_EXTERN bool wasmtime_component_tuple_type_types_nth ( const wasmtime_component_tuple_type_t ty,
size_t  nth,
struct wasmtime_component_valtype_t type_ret 
)

Returns the nth type in a component tuple type.

The returned type must be deallocated with wasmtime_component_valtype_delete.

◆ wasmtime_component_valtype_clone()

WASM_API_EXTERN void wasmtime_component_valtype_clone ( const wasmtime_component_valtype_t ty,
wasmtime_component_valtype_t out 
)

Clones a component value type.

The returned pointer must be deallocated with wasmtime_component_valtype_delete.

◆ wasmtime_component_variant_type_clone()

WASM_API_EXTERN wasmtime_component_variant_type_t * wasmtime_component_variant_type_clone ( const wasmtime_component_variant_type_t ty)

Clones a component variant type.

The returned pointer must be deallocated with wasmtime_component_variant_type_delete.