Skip to main content

Serializer

Derive Macro Serializer 

Source
#[derive(Serializer)]
{
    // Attributes available to this derive:
    #[serializer]
}
Expand description

Derive [rustango::serializer::ModelSerializer] for a struct.

§Container attribute (required)

#[serializer(model = TypeName)] — the Model type this serializer maps from.

§Field attributes

  • #[serializer(read_only)] — mapped from model; included in JSON output; excluded from writable_fields()
  • #[serializer(write_only)]Default::default() in from_model; excluded from JSON output; included in writable_fields()
  • #[serializer(source = "field_name")] — reads from model.field_name instead of model.<field_ident>
  • #[serializer(skip)]Default::default() in from_model; included in JSON output; excluded from writable_fields() (user sets manually)

The macro also emits a custom impl serde::Serialize — do not also #[derive(Serialize)].