// returns true on success.
#[inline]
+ pub(super)
fn reset(&mut self) -> bool {
+ self.stream_inst.0.borrow_mut().0 = false;
+
match self.stream_inst.0.borrow_mut().1 {
StreamInstance::Bytes(ref mut cursor) => {
cursor.set_position(0);
file.seek(SeekFrom::Start(0)).unwrap();
true
}
- StreamInstance::ReadlineStream(ref mut stream) => {
- *stream = ReadlineStream::new(String::new());
+ StreamInstance::ReadlineStream(_) => {
true
}
_ => {
}
}
&SystemClauseType::ReadQueryTerm => {
+ current_input_stream.reset();
+
readline::set_prompt(true);
let result = self.read_term(current_input_stream.clone(), indices);
readline::set_prompt(false);
}
impl ReadlineStream {
- pub fn new(pending_input: String) -> Self {
- let rl = Editor::<()>::new();
- ReadlineStream { rl, pending_input: Cursor::new(pending_input) }
- }
-
pub fn input_stream(pending_input: String) -> Stream {
let mut rl = Editor::<()>::new();
rl.bind_sequence(KeyPress::Tab, Cmd::Insert(1, "\t".to_string()));