use crate::io::reactor::complete;
pub trait Map: complete::Map {
type Parts: Copy;
type Fault;
fn new<B>(parts: Self::Parts, buffer: Selection<B, Self::Fault>) -> Self::Entry<B>;
fn into_parts<B>(entry: Self::Entry<B>) -> (Self::Parts, Selection<B, Self::Fault>);
}
pub enum Selection<B, E> {
None,
Selected(B),
Invalid(E),
}