1 unstable release

0.0.1-alpha Apr 28, 2022
0.0.0 Apr 28, 2022

#237 in No standard library


Used in sierra

MIT/Apache

20KB
259 lines

array-fu

crates docs actions MIT/Apache loc

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

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.

No runtime deps