#struct #macro #merged #multiple #generate #debugging #sub-structs

multi-structs

从多个子结构体生成合并结构体的宏

4 个版本

0.1.1 2020年1月11日
0.1.0 2020年1月11日
0.0.2 2018年5月27日
0.0.1 2018年5月27日

Rust 模式 中排名 2693

MIT 许可证

7KB
77

multi-structs

Build Status Docs

从多个子结构体生成合并结构体的宏。

示例

#[macro_use]
extern crate multi_structs;

multi_structs! {
    /// The merged struct.
    #[derive(Debug)]
    pub struct Merged {
        /// Foo
        #[derive(Debug)]
        pub foo: struct Foo {
            /// a
            pub a: i32,
            /// b
            pub b: i64,
        }
        /// Bar
        #[derive(Debug)]
        pub bar: struct Bar {
            /// c
            pub c: usize,
            /// d
            pub d: String,
        }
    }
}

fn main() {
    let foo = Foo { a: 1, b: 2 };
    let bar = Bar { c: 3, d: "aaa".to_string() };
    println!("{:?}, {:?}", foo, bar);
    let merged = Merged::new(foo, bar);
    println!("{:?}", merged);
    let (foo, bar) = merged.split();
    println!("{:?}, {:?}", foo, bar);
}

无运行时依赖

功能