1 个不稳定版本
0.1.0 | 2021年12月22日 |
---|
#90 in #mutable
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