pushy: Vec-like stack-allocated buffer 
pushy::PushArray is a safe abstraction over uninitialized Rust arrays.
A buffer you can push elements to
// Fixed capacity of 3
let mut arr: = new;
while let Some = rx.next
if let Some = other_rx.next
The length is the amount of initialized elements
let mut arr: = new;
// Nothing was initialized yet
assert_eq!;
arr.push_str?;
assert_eq!;
Byte-specific methods
// `as_str` and `push_str` are implemented for `PushArray<u8>`
let mut arr: = new;
arr.push_str?;
// Converts to &str if the contents of the array are valid UTF-8
assert_eq!;
You can only access elements that were initialized
let mut arr: = new;
arr.push_str?;
assert_eq!;
assert_eq!;
assert_eq!;
// Even though the capacity is 10, only three elements were initialized, so `get(3)` returns None
assert_eq!;
// Access through the Index trait
assert_eq!;
Pushing many elements at once
let mut bytes: = new;
let hello = ;
// You can copy from a slice (currently only for Copy types)
bytes.copy_from_slice?;
assert_eq!;
// Push an array onto the PushArray taking ownership of these elements (works for !Copy elements)
bytes.push_array?;
assert_eq!;
Get all initialized elements
let mut numbers: = new;
for number in
// Get all initialized elements with `initialized`
assert_eq!;
// `as_slice` is an alias to `initialized`
assert_eq!;