/// Trait for history handling.
pubtraitHistory<T> {/// This is called with the current position that should
/// be read from history. The `pos` represents the number
/// of times the `Up`/`Down` arrow key has been pressed.
/// This would normally be used as an index to some sort
/// of vector. If the `pos` does not have an entry, [`None`](Option::None)
/// should be returned.
fnread(&self, pos:usize)->Option<String>;/// This is called with the next value you should store
/// in history at the first location. Normally history
/// is implemented as a FIFO queue.
fnwrite(&mutself, val:&T);}