pinned-queue 0.1.1

Queue-like data structure whose elements can never move
Documentation
use std::pin::Pin;
use std::ptr;

use pinned_queue::PinnedQueue;

#[test]
fn test() {
	let mut queue = PinnedQueue::new();
	queue.push_back(1);
	let p = queue.get(0).unwrap();
	assert_eq!(1, *p);
	let p1 = Pin::into_inner(p) as *const _;

	queue.push_back(2);
	let p = queue.get(0).unwrap();
	assert_eq!(1, *p);
	assert!(ptr::eq(p1, Pin::into_inner(p) as *const _));

	queue.push_back(3);

	let p1 = Pin::into_inner(queue.get_mut(2).unwrap()) as *mut _;
	queue.push_back(4);
	queue.push_back(5);

	queue.pop_front();
	queue.pop_front();

	let p = queue.get_mut(0).unwrap();
	assert_eq!(3, *p);
	assert!(ptr::eq(p1, Pin::into_inner(p) as *const _));
}