Derive Macro rustler_codegen::NifTuple

source ·
#[derive(NifTuple)]
{
    // Attributes available to this derive:
    #[rustler]
}
Expand description

Derives implementations for the Encoder and Decoder traits which convert between a Rust struct and an Elixir tuple.

For example, annotate the following struct:

#[derive(NifTuple)]
struct AddTuple {
    lhs: i32,
    rhs: i32,
}

Create a value of that type:

let value = AddMap { lhs: 33, rhs: 21 };

Then the traits Encoder and Decoder are derived automatically for your Rust struct such that encoding value would result in an elixir tuple with two elements like:

{33, 21}

And vice versa, decoding this map would result in value.

The size of the tuple will depend on the number of elements in the struct.