0.1.0 |
|
---|
#376 in #vec
7KB
151 代码行
thisisplural
#[derive(Plural)]
用于创建与 Vec、HashMap 等无缝的新类型。
功能
#[derive(Plural)]
实现了From
、Into
、FromIterator
、IntoIterator
、Deref
和DerefMut
。- 支持
Vec
和HashMap
(在此处添加其他集合非常容易)。
示例
#[derive(Plural)]
struct Numbers(Vec<u32>);
// use From trait
let mut my_favorite_numbers: Numbers = vec![].into();
// use DerefMut trait.
my_favorite_numbers.push(42);
// HashMap is also supported
#[derive(Plural)]
struct FavoriteNumbers(HashMap<&'static str, Numbers>);
// use FromIterator trait
let favorite_numbers = FavoriteNumbers::from_iter([("ryo33", my_favorite_numbers)]);
// use IntoIterator trait
for (name, numbers) in favorite_numbers {
// use Deref trait
println!("{} has {} favorite number(s)", name, numbers.len());
}
依赖关系
~1.5MB
~36K SLoC