4个版本
使用旧的Rust 2015
0.1.3 | 2018年6月26日 |
---|---|
0.1.2 | 2018年5月8日 |
0.1.1 | 2018年4月19日 |
0.1.0 | 2018年4月19日 |
在#box中排名第119
在boxext中使用
4KB
为boxext::Zero
特质定制的派生
在您的类型上添加#[derive(Zero)]
来自动派生boxext::Zero
特质。只有聚合实现boxext::Zero
特质类型的结构体可以使用此功能。
示例
extern crate boxext;
#[macro_use]
extern crate boxext_derive;
use boxext::BoxExt;
#[derive(Zero)]
struct Foo {
a: usize,
b: f64,
c: [usize; 4],
}
// #[derive(Zero)]
// ^ the trait `boxext::Zero` is not implemented for `std::boxed::Box<Foo>`
// struct Bar {
// a: usize,
// b: Box<Foo>,
// }
fn main() {
// equivalent to Box::new(Foo { a: 0, b: 0.0, c: [0; 4] })
let buf: Box<Foo> = Box::new_zeroed();
}
依赖项
~2MB
~47K SLoC