Crate inter_struct

Source
Expand description

Inter-struct provides various derive macros to implement traits between arbitrary structs.

The current available derive macros are:

  • StructMerge
  • StructMergeRef
  • StructInto
  • StructDefault

The general way to use such a derive macro is like this:

#[derive(StructInto)]
#[struct_into(["crate::path_to::TargetStruct"])]
pub struct Test {
    pub test: String,
}

This example generates an impl Into<TargetStruct> for Test, which converts Test into some TargetStruct.

Note that the target struct’s paths has to be

  • contained in this crate.
  • relative to the current crate.

Either a single path or a list of paths can be specified. The traits will then be implemented for each given target struct.

#[struct_into("crate::path_to::TargetStruct")]
// or
#[struct_into(["crate::path_to::TargetStruct", "crate::path_to::AnotherTargetStruct"])]

Each derive macro can have their own options, so please check the individual docs for each derive macro in this crate.

Modules§

merge
Docs and traits for struct merging.
prelude
Imports all modules to get you started.

Derive Macros§

StructInto
Implement the Into trait on this struct.
StructIntoDefault
Implement the Into trait on this struct with Default::default for missing fields.
StructMerge
Implement the StructMerge trait on this struct.
StructMergeRef
Implement the StructMergeRef trait on this struct.