Skip to content

zakarumych/array-fu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Array comprehension

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages