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

Docs and traits for struct merging.

Imports all modules to get you started.

Derive Macros

Implement the Into trait on this struct.

Implement the Into trait on this struct with Default::default for missing fields.

Implement the StructMerge trait on this struct.

Implement the StructMergeRef trait on this struct.