header-vec 0.1.3

Vector with user-specified header, length, capacity, and array elements all stored on the heap together
Documentation
use core::mem::size_of_val;
use header_vec::HeaderVec;

#[derive(Debug)]
struct OurHeaderType {
    #[allow(dead_code)]
    a: usize,
}

fn main() {
    let h = OurHeaderType { a: 2 };
    let mut hv = HeaderVec::<OurHeaderType, char>::new(h);
    hv.push('x');
    hv.push('z');

    println!(
        "[`HeaderVec`] itself consists solely of a pointer, it's only {} bytes big.",
        size_of_val(&hv)
    );
    println!(
        "All of the data, like our header `{:?}`, the length of the vector: `{}`,",
        &*hv,
        hv.len()
    );
    println!(
        "and the contents of the vector `{:?}` resides on the other side of the pointer.",
        hv.as_slice()
    );
}