pub trait ArrayLike<T, E: Error> {
// Required methods
fn flush(&mut self) -> Result<(), E>;
fn get(&self, index: usize) -> Result<Option<T>, E>;
fn is_empty(&self) -> Result<bool, E>;
fn len(&self) -> Result<usize, E>;
fn position(&self, item: &T) -> Result<Option<usize>, E>;
fn push(&mut self, item: T) -> Result<usize, E>;
}