``` fn alloc_one<T>(&mut self) -> Result<Unique<T>, AllocErr> where Self: Sized { let k = Layout::new::<T>(); if k.size() > 0 { unsafe { self.alloc(k).map(|p|Unique::new(*p as *mut T)) } } else { Err(AllocErr::invalid_input("zero-sized type invalid for alloc_one")) } } ``` @pnkfelix