#struct #macro #from #into

macro into-from

Rust macro for impl Into<T> or From<T> for Struct

3 releases

new 0.1.2 Dec 13, 2024
0.1.1 Dec 12, 2024
0.1.0 Dec 12, 2024

#466 in Procedural macros

Download history

70 downloads per month

Apache-2.0

10KB
98 lines

Crates.io Docs Download

Macro Into

Rust macro for auto impl Into<T> or From<T> for Struct

Usage

impl Into<Bar> for Foo

struct Foo {
    field1: i32,
    field3: String,
}

#[into(Foo)]
struct Bar {
    field1: i32,
    #[into_skip]
    field2: String,
    #[into(self.field3.to_string())]
    field3: i32,
}

Auto generated code:

impl Into<Foo> for Bar {
    fn into(self) -> Foo {
        Foo {
            field1: self.field1,
            field3: self.field3.to_string(),
        }
    }
}

impl From<Bar> for Foo

struct Foo {
    field1: i32,
    field2: String,
}

#[from(Foo)]
struct Bar {
    field1: i32,
    #[from(source.field2.parse::<i32>().unwrap())]
    field3: i32,
}

Auto generated code:

impl From<Foo> for Bar {
    fn from(source: Foo) -> Self {
        Bar {
            field1: source.field1,
            field3: source.field2.parse::<i32>().unwrap(),
        }
    }
}

Dependencies

~235–680KB
~16K SLoC