bivec 0.1.0

A Rust implementation of Bivec, two vecs in one, with the same length.
Documentation
use super::*; 

impl <F, S> BiVec<F, S> {
    pub fn new() -> Self {
        Self {
            first: NonNull::dangling(),
            second: NonNull::dangling(),
            capacity: 0, 
            len: 0,
        } 
    } 
    pub fn with_capacity(capacity: usize) -> Self { 
        let (first, second); 
        if core::mem::size_of::<F>() == 0 {
            first = NonNull::dangling(); 
        } else {
            let layout = core::alloc::Layout::array::<F>(capacity).unwrap(); 
            let alloc = unsafe { std::alloc::alloc(layout) }; 
            first = NonNull::new(alloc as *mut F).unwrap(); 
        }
        if core::mem::size_of::<S>() == 0 {
            second = NonNull::dangling(); 
        } else {
            let layout = core::alloc::Layout::array::<S>(capacity).unwrap(); 
            let alloc = unsafe { std::alloc::alloc(layout) }; 
            second = NonNull::new(alloc as *mut S).unwrap();  
        }
        Self {
            first, 
            second, 
            capacity, 
            len: 0, 
        }
    }
}