4 个版本
使用旧的 Rust 2015
0.2.1 | 2016年4月13日 |
---|---|
0.2.0 | 2016年4月13日 |
0.1.1 | 2016年4月12日 |
0.1.0 | 2016年4月12日 |
在 #visit 中排名 5
3KB
Visitor
一个泛型库,用于轻松访问结构中的元素并对每个元素执行操作
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
visitor = "*"
并将其添加到您的 crate 根目录
extern crate visitor;
示例
struct Data{
a: u32,
b: u32
}
impl Visit<u32> for Data{
fn visit<V: Visitor<u32>>(&self, v: &mut V) -> Result<(),V::Error>{
try!(v.visit(self.a));
try!(v.visit(self.b));
Ok(())
}
}
struct AddVisitor{
value: u32
}
impl Visitor<u32> for AddVisitor{
type Error = ();
fn visit(&mut self, data: u32) -> Result<(), Self::Error>{
self.value += data;
Ok(())
}
}
#[test]
fn it_works() {
let data = Data{
a: 3,
b: 4
};
let mut adder = AddVisitor{
value: 0
};
data.visit(&mut adder).unwrap();
assert_eq!(adder.value, 7);
}