stackvec 0.2.1

A crate to use stack-allocated Vectors (performance and/or no-std)
use super::*;

use self::prelude::*;

#[test]
fn build_stackvec ()
{
	let array = StackVec::<[_; 10]>::from_iter(
		[3, 4, 6, 8].iter().cloned()
	);
    println!("{:?}", array);
}

#[test]
fn build_array ()
{
	let array: [_; 4] =
		[3, 4, 6, 8]
		.iter().cloned()
		.try_collect()
		.expect("Missing elements to collect");
    println!("{:?}", array);
}

#[test]
#[should_panic]
fn build_array_but_incomplete ()
{
	let _array: [_; 10] =
		[3, 4, 6, 8]
		.iter().cloned()
		.try_collect()
		.expect("Missing elements to collect");
}

#[test]
fn array_into_iter ()
{
	assert_eq!(
		[3, 4, 6, 8].into_iter().collect::<Vec<_>>(),
		vec![3, 4, 6, 8],
	);
}

#[test]
fn array_into_iter_dropped ()
{
	let _ = [3, 4, 6, 8].into_iter();
}

#[test]
fn array_map ()
{
	let array: [_; 4] =
		[3, 4, 6, 8]
		.into_iter()
		.map(|x| 2 * x)
		.try_collect()
		.expect("Missing elements to collect");
	let mut array_map_in_place = [3, 4, 6, 8];
	array_map_in_place.iter_mut().for_each(|x| *x *= 2);
	assert_eq!(
		array,
		array_map_in_place,
	);
}

#[test]
#[should_panic]
fn try_push_to_full_stackvec ()
{
	let mut stackvec: StackVec<[_; 1]> = Default::default();
	stackvec.try_push(0).unwrap();
	stackvec.try_push(0).unwrap();
}