map-macro 0.3.0

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

use map_macro::{linked_list, linked_list_e};

#[derive(Debug)]
struct Dyn1;

#[derive(Debug)]
struct Dyn2;

#[test]
fn linked_list1() {
    let v: LinkedList<u8> = linked_list![0, 1, 2, 3];

    let mut iter = v.into_iter();

    assert_eq!(iter.next().unwrap(), 0);
    assert_eq!(iter.next().unwrap(), 1);
    assert_eq!(iter.next().unwrap(), 2);
    assert_eq!(iter.next().unwrap(), 3);
}

#[test]
fn linked_list2() {
    let v: LinkedList<u8> = linked_list![0; 4];

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

    let mut iter = v.into_iter();

    assert_eq!(iter.next().unwrap(), 0);
    assert_eq!(iter.next().unwrap(), 0);
    assert_eq!(iter.next().unwrap(), 0);
    assert_eq!(iter.next().unwrap(), 0);
}

#[test]
fn linked_list_empty() {
    drop::<LinkedList<u8>>(linked_list![]);
}

#[test]
fn linked_list_e1() {
    drop::<LinkedList<&dyn Debug>>(linked_list_e![&0, &"Hello"]);
}

#[test]
fn linked_list_e2() {
    drop::<LinkedList<&dyn Debug>>(linked_list_e![&0; 4]);
}