use crate::table::change;
pub trait Entry: Sized {
type Id: Copy + Eq;
type Echo: Copy + Eq + Into<usize>;
type File: change::Id;
type Family: Copy + Eq;
type Call: Copy;
fn id(&self) -> Self::Id;
fn echo(&self) -> Self::Echo;
fn file(&self) -> Self::File;
fn index(&self) -> u32;
fn family(&self) -> Self::Family;
fn operation(&self) -> Self::Call;
fn key(id: Self::Id) -> usize;
}