1个不稳定版本
0.0.1-alpha | 2022年4月28日 |
---|---|
0.0.0 |
|
#223 在 无标准库
在 sierra 中使用
20KB
259 行
array-fu
此crate定义了array!
和其他可以构建数组的宏。使用简单的语法,根据需求变化使其更复杂。
array!
宏通过重复表达式执行构建数组,可能将提供的模式绑定到枚举。
示例
use array_fu::array;
use rand::random;
let values: [f32; 2] = array![random(); 2];
这也意味着表达式类型可能不是Copy
或甚至是Clone
。
use array_fu::array;
# use std::sync::Mutex;
let values = array![Mutex::new(1); 2];
更多示例请参见array!
宏文档。
collect_array!
宏通过重复表达式执行并使用迭代器中的元素绑定到提供的模式来构建数组。
示例
use array_fu::collect_array;
let opt = collect_array![x in 1.., y in 2.. => x + y; where x * y > 10; 3];
assert_eq!(opt, Some([7, 9, 11]));
use array_fu::collect_array;
let values = collect_array![(x, y) in [(1, 2), (3, 4), (5, 6)] => x + y; 3];
assert_eq!(values, Some([3, 7, 11]));
更多示例请参见collect_array!
宏文档。
许可证
许可如下
- Apache License,版本2.0,(license/APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (license/MIT或http://opensource.org/licenses/MIT)
任选其一。
贡献
除非你明确声明,否则任何有意提交以包含在作品中的贡献,根据Apache-2.0许可证定义,应如上双许可,不附加任何额外条款或条件。