map-macro 0.3.0

Declarative macros for statically initializing collections
Documentation
use std::collections::VecDeque;
use std::fmt::Debug;

use map_macro::{vec_deque, vec_deque_e};

#[derive(Debug)]
struct Dyn1;

#[derive(Debug)]
struct Dyn2;

#[test]
fn vec_deque1() {
    let v: VecDeque<u8> = vec_deque![0, 1, 2, 3];

    assert_eq!(v[0], 0);
    assert_eq!(v[1], 1);
    assert_eq!(v[2], 2);
    assert_eq!(v[3], 3);
}

#[test]
fn vec_deque2() {
    let v: VecDeque<u8> = vec_deque![0; 4];

    assert_eq!(v.len(), 4);

    assert_eq!(v[0], 0);
    assert_eq!(v[1], 0);
    assert_eq!(v[2], 0);
    assert_eq!(v[3], 0);
}

#[test]
fn vec_deque_empty() {
    drop::<VecDeque<u8>>(vec_deque![]);
}

#[test]
fn vec_deque_e1() {
    drop::<VecDeque<&dyn Debug>>(vec_deque_e![&0, &"Hello"]);
}

#[test]
fn vec_deque_e2() {
    drop::<VecDeque<&dyn Debug>>(vec_deque_e![&0; 4]);
}