#traits-structs #struct #proc-macro #merge #library

inter-struct

Automatically generated traits for arbitrary structs

3 unstable releases

0.2.1 Dec 16, 2023
0.2.0 May 30, 2022
0.1.0 Apr 4, 2022

#2286 in Rust patterns

Download history 73/week @ 2024-07-29 66/week @ 2024-08-05 166/week @ 2024-08-12 160/week @ 2024-08-19 69/week @ 2024-08-26 56/week @ 2024-09-02 67/week @ 2024-09-09 56/week @ 2024-09-16 79/week @ 2024-09-23 57/week @ 2024-09-30 67/week @ 2024-10-07 55/week @ 2024-10-14 78/week @ 2024-10-21 153/week @ 2024-10-28 113/week @ 2024-11-04 103/week @ 2024-11-11

455 downloads per month

MIT license

11KB
122 lines

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.

Dependencies

~230–670KB
~16K SLoC