1 个不稳定版本

0.1.0 2021年12月22日

#90 in #mutable


用于 massa-sc-runtime

MIT/Apache

12KB
254

玉米片 🥐

一个用于结合config加载和CLI参数解析的structops的crate。拥有更通用的解决方案(如提供方便的定制宏的定制crate)以按此优先级加载参数(作为Rust结构体):CLI参数 / ENV变量 / CONFIG文件值。

  • #[cornetto(mut, 200)]:定义一个可重置的测试中可变的常量变量,值为200
  • #[cornetto(const, 200)]:定义一个简单的常量变量,值为200
use cornetto::Cornetto;

#[allow(dead_code)]
#[derive(Cornetto)]
struct Test {
    #[cornetto(mut, 200)] // mutable on test ( _reset(args...) )
    pub price: u64,
    #[cornetto(const, 150)] // always const
    pub const_price: u64,
    #[cornetto(mut, "youhouhou")]
    pub strin: String,
}

fn main() {
    println!("{}", TEST.price() == 200);
    println!("{}", TEST.const_price() == 150);
    println!("{}", TEST.strin().eq("youhouhou"));
    // true, true and true
}

#[cfg(test)]
mod test {
    #[test]
    fn test_cornetto() {
        super::TEST.price();
        assert_eq!(super::TEST.price(), 200);
        super::TEST._reset(100, "ho ho ho".to_string()); // only accessible from tests
        assert_eq!(super::TEST.price(), 100);
    }
}

依赖

~1.5MB
~37K SLoC