RustQ-authored primitive Kiwi skip helpers used by generated Rustler decoders.
Summary
Types
The Rust KiwiSkipField: a message field id and how to skip its value.
The Rust KiwiSkipFn: skips one value of a type.
Functions
The RustQ AST of each defrust definition.
Callable metadata for the module's definitions.
The Rust items the module generates, in order.
The module's defrustmacro definitions.
The macro_rules! items defrustmacro emits.
The Rust source the module generates.
The RustQ AST of each declared Rust type.
The Rust items the module's types generate.
The Rust types the module's @types declare.
Returns kiwi_skip_kind, which skips a message field's value, and with
descriptor_kind?: true also kiwi_skip_descriptor_kind, which skip message macros call.
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
Types
@type kiwi_skip_field() :: %{id: RustQ.Type.u32(), kind: kiwi_skip_kind()}
The Rust KiwiSkipField: a message field id and how to skip its value.
@type kiwi_skip_fn() :: RustQ.Type.raw(:"fn(&mut Decoder<'_>) -> NifResult<()>")
The Rust KiwiSkipFn: skips one value of a type.
Functions
The RustQ AST of each defrust definition.
Callable metadata for the module's definitions.
The Rust items the module generates, in order.
The module's defrustmacro definitions.
The macro_rules! items defrustmacro emits.
The Rust source the module generates.
The RustQ AST of each declared Rust type.
The Rust items the module's types generate.
The Rust types the module's @types declare.
@spec dispatch_fragments(keyword()) :: [RustQ.Rust.Fragment.t()]
Returns kiwi_skip_kind, which skips a message field's value, and with
descriptor_kind?: true also kiwi_skip_descriptor_kind, which skip message macros call.
@spec kiwi_skip_bool_value( RustQ.Type.mut_ref(RustQ.Type.path(:Decoder, RustQ.Type.lifetime(:_))) ) :: RustQ.Type.nif_result(RustQ.Type.unit())
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
@spec kiwi_skip_byte_value( RustQ.Type.mut_ref(RustQ.Type.path(:Decoder, RustQ.Type.lifetime(:_))) ) :: RustQ.Type.nif_result(RustQ.Type.unit())
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
@spec kiwi_skip_bytes_value( RustQ.Type.mut_ref(RustQ.Type.path(:Decoder, RustQ.Type.lifetime(:_))) ) :: RustQ.Type.nif_result(RustQ.Type.unit())
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
@spec kiwi_skip_descriptor_kind(boolean(), boolean(), RustQ.Type.path(:KiwiSkipFn)) :: RustQ.Type.path(:KiwiSkipKind)
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
@spec kiwi_skip_float_value( RustQ.Type.mut_ref(RustQ.Type.path(:Decoder, RustQ.Type.lifetime(:_))) ) :: RustQ.Type.nif_result(RustQ.Type.unit())
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
@spec kiwi_skip_int64_value( RustQ.Type.mut_ref(RustQ.Type.path(:Decoder, RustQ.Type.lifetime(:_))) ) :: RustQ.Type.nif_result(RustQ.Type.unit())
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
@spec kiwi_skip_int_value( RustQ.Type.mut_ref(RustQ.Type.path(:Decoder, RustQ.Type.lifetime(:_))) ) :: RustQ.Type.nif_result(RustQ.Type.unit())
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
@spec kiwi_skip_kind( RustQ.Type.mut_ref(RustQ.Type.path(:Decoder, RustQ.Type.lifetime(:_))), RustQ.Type.ref(RustQ.Type.path(:KiwiSkipKind)) ) :: RustQ.Type.nif_result(RustQ.Type.unit())
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
@spec kiwi_skip_message_fields( RustQ.Type.mut_ref(RustQ.Type.path(:Decoder, RustQ.Type.lifetime(:_))), RustQ.Type.str(), RustQ.Type.slice(RustQ.Type.path(:KiwiSkipField)) ) :: RustQ.Type.nif_result(RustQ.Type.unit())
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
@spec kiwi_skip_repeated( RustQ.Type.mut_ref(RustQ.Type.path(:Decoder, RustQ.Type.lifetime(:_))), RustQ.Type.path(:KiwiSkipFn) ) :: RustQ.Type.nif_result(RustQ.Type.unit())
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
@spec kiwi_skip_string_value( RustQ.Type.mut_ref(RustQ.Type.path(:Decoder, RustQ.Type.lifetime(:_))) ) :: RustQ.Type.nif_result(RustQ.Type.unit())
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
@spec kiwi_skip_struct_fields( RustQ.Type.mut_ref(RustQ.Type.path(:Decoder, RustQ.Type.lifetime(:_))), RustQ.Type.slice(RustQ.Type.path(:KiwiSkipKind)) ) :: RustQ.Type.nif_result(RustQ.Type.unit())
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
@spec kiwi_skip_struct_fields_remaining( RustQ.Type.mut_ref(RustQ.Type.path(:Decoder, RustQ.Type.lifetime(:_))), RustQ.Type.slice(RustQ.Type.path(:KiwiSkipKind)), RustQ.Type.usize() ) :: RustQ.Type.nif_result(RustQ.Type.unit())
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
@spec kiwi_skip_uint64_value( RustQ.Type.mut_ref(RustQ.Type.path(:Decoder, RustQ.Type.lifetime(:_))) ) :: RustQ.Type.nif_result(RustQ.Type.unit())
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
@spec kiwi_skip_uint_value( RustQ.Type.mut_ref(RustQ.Type.path(:Decoder, RustQ.Type.lifetime(:_))) ) :: RustQ.Type.nif_result(RustQ.Type.unit())
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
@spec macro_fragments([atom()]) :: [RustQ.Rust.Fragment.t()]