1 个稳定版本
使用旧的 Rust 2015
1.0.0 | 2017 年 1 月 15 日 |
---|
#2841 在 Rust 模式 中
351 每月下载量
在 19 个 crate 中使用(直接使用 2 个)
3KB
63 行
vec_box!
一个小宏,用于将数组中的元素装箱,以便与 trait 对象一起使用。
示例
#[macro_use]
extern crate vec_box;
struct A {
x: u32
}
impl A {
fn new(x: u32) -> A {
A { x: x }
}
}
struct B {
x: u32,
y: u32
}
impl B {
fn new(x: u32) -> B {
B { x: x, y: x }
}
}
trait C {
fn get(&self) -> u32;
}
impl C for A {
fn get(&self) -> u32 {
self.x
}
}
impl C for B {
fn get(&self) -> u32 {
self.x + self.y
}
}
fn main() {
let v: Vec<Box<C>> = vec_box![
A::new(1),
B::new(1),
A::new(2)
];
assert_eq!(
v.iter().fold(0, |acc, ref x| acc + x.get()),
5
);
}