1个不稳定版本
0.1.0 | 2021年7月30日 |
---|
#917 在 #macro-derive
用于 if_empty
7KB
IfEmpty derive宏
如果类型实现了is_empty函数,此crate提供了一个derive宏,实现if_empty功能。
#[derive(IfEmpty)]
struct Example {
value: String,
}
impl Example {
fn is_empty(&self) -> bool {
self.value.is_empty()
}
}
fn main() {
let example = Example {
value: String::new(),
};
print!("Example '{}'", example.value);
// Example ''
let not_empty_example = e.if_empty(Example {
value: "default val".to_string(),
});
print!("Example '{}'", not_empty_example.value);
// Example 'default val'
}
lib.rs
:
补充if_empty
的derive宏
如果类型实现了is_empty函数,此crate提供了一个derive宏,实现if_empty
函数。
示例
#[derive(IfEmpty)]
struct Example {
value: String,
}
impl Example {
fn is_empty(&self) -> bool {
self.value.is_empty()
}
}
let example = Example {
value: String::new(),
};
assert!(example.value.is_empty());
assert_eq!(example.if_empty(Example {value: "a default".to_string()}).value, "a default");
依赖项
~1.5MB
~35K SLoC