pub trait TypedArray<T> {
// Required methods
fn as_slice(&self) -> &[T];
fn as_mut_slice(&mut self) -> &mut [T];
// Provided methods
fn to_vec(&self) -> Vec<T>
where T: Clone { ... }
fn copy_from_slice(&mut self, slice: &[T])
where T: Copy { ... }
fn clone_from_slice(&mut self, slice: &[T])
where T: Clone { ... }
}