use std::ops;
#[cfg(feature = "macros")]
pub use see_derive;
pub trait See<N> {
type Inner;
fn get(&self) -> &Self::Inner;
fn set(&mut self) -> &mut Self::Inner;
}
pub trait Look<I>:
See<I> + ops::Index<I, Output = Self::Inner> + ops::IndexMut<I, Output = Self::Inner>
{
}
impl<T, I, D> Look<I> for T where
T: See<I, Inner = D> + ops::Index<I, Output = D> + ops::IndexMut<I, Output = D>
{
}