#[cfg(test)]
mod tests {
use arr_macro::arr;
#[test]
fn main_test() {
let x: [Option<String>; 3] = arr![None; 3];
assert_eq!(
[None, None, None],
x
);
#[allow(dead_code)]
enum MyEnum {
A,
B
}
let _: [MyEnum; 33] = arr![MyEnum::A; 33];
let _: [Vec<String>; 33] = arr![Vec::new(); 33];
#[derive(Debug)]
struct MyStruct {
member: u16,
}
impl MyStruct {
fn new(member: u16) -> Self {
MyStruct { member }
}
}
let mut i = 0u16;
let x: [MyStruct; 33] = arr![MyStruct::new({i += 1; i - 1}); 33];
assert_eq!(0, x[0].member);
assert_eq!(1, x[1].member);
assert_eq!(2, x[2].member);
}
#[test]
fn two_dimension_arr() {
let _ = arr![arr![0; 3]; 3];
}
}