#i32 #basic #constructor #value #quick #generation #scones

scones_examples

为 Scones 库提供的示例(和测试)

3 个版本

0.1.2 2020年11月4日
0.1.1 2020年10月16日
0.1.0 2020年10月16日

#2585Rust 模式

MIT/Apache

30KB
164

松饼

Scones on Crates.IO Documentation Examples

一个用于 Rust 中快速且强大的构造函数/构建器生成的库。双重许可,MIT 或 Apache 2.0。示例

use scones::{make_builder, make_constructor};

#[make_builder]
#[make_constructor]
struct Basic {
    int: i32,
    string: String,
}
let instance = Basic::new(int, string);
let instance = BasicBuilder::new().string("str".to_owned()).int(12345).build();
// Triggers a compile-time error because we have not specified all fields yet:
// let instance = BasicBuilder::new().build();

#[make_constructor]
#[make_constructor(pub new_identical(shared: i32))]
pub struct MultipleConstructors {
    #[value(shared for new_identical)]
    pub a: i32,
    #[value(shared for new_identical)]
    pub b: i32,
    #[value(shared for new_identical)]
    pub c: i32,

    #[value(true)]
    #[value(false for new)]
    pub identical: bool,
}
let instance = MultipleConstructors::new(1, 2, 3);
let instance = MultipleConstructors::new_identical(123);

#[make_constructor]
#[make_constructor(pub default_number)]
#[make_builder((field_1?))]
pub struct TupleStruct(
    #[value(30 for default_number)] i32,
    #[value("Unnamed".to_owned() for TupleStructBuilder)] String,
);
let instance = TupleStruct::default_number(field_1);
let instance = TupleStructBuilder::new().field_0(12345).build();

依赖关系

~1.5MB
~37K SLoC