1 unstable release
0.0.1-alpha | Apr 28, 2022 |
---|---|
0.0.0 |
|
#240 in No standard library
Used in sierra
20KB
259 lines
array-fu
This crate defines array!
and other macros that can construct arrays.
Use simple syntax, make it more complex as requirements change.
array!
macro constructs arrays by repeating expression execution, possibly with enumeration bound to provided pattern.
Examples
use array_fu::array;
use rand::random;
let values: [f32; 2] = array![random(); 2];
This also means that expression type may not be Copy
or event Clone
.
use array_fu::array;
# use std::sync::Mutex;
let values = array![Mutex::new(1); 2];
See more examples in the array!
macro documentation.
collect_array!
macro constructs arrays by repeating expression execution with elements from iterators bound to provided patterns.
Examples
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]));
See more examples in the collect_array!
macro documentation.
License
Licensed under either of
- Apache License, Version 2.0, (license/APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (license/MIT or http://opensource.org/licenses/MIT)
at your option.
Contributions
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.