use smallvec::SmallVec;
pub mod cursor;
pub mod dataflow;
pub trait Lone<T> {
fn lone(self) -> T;
}
impl<T> Lone<T> for T {
fn lone(self) -> T {
self
}
}
impl<T> Lone<T> for Vec<T> {
fn lone(mut self) -> T {
assert!(self.len() == 1);
self.pop().unwrap()
}
}
impl<T> Lone<T> for SmallVec<[T; 1]> {
fn lone(mut self) -> T {
assert!(self.len() == 1);
self.pop().unwrap()
}
}