1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
extern crate core; use super::allocated_memory::SliceWrapper; use super::allocated_memory::SliceWrapperMut; pub struct AllocatedStackMemory<'a, T:'a> { pub mem : &'a mut [T], } define_index_ops_mut!(a, T, AllocatedStackMemory<'a, T>); impl<'a, T: 'a> core::default::Default for AllocatedStackMemory<'a, T> { fn default() -> Self { return AllocatedStackMemory::<'a, T>{mem : &mut[]}; } } impl<'a, T: 'a> SliceWrapper<T> for AllocatedStackMemory<'a, T> { fn slice(& self) -> & [T] { return & self.mem; } } impl<'a, T: 'a> SliceWrapperMut<T> for AllocatedStackMemory<'a, T> { fn slice_mut(& mut self) ->& mut [T] { return &mut self.mem; } }