pub struct ShellTextTale { /* private fields */ }
Expand description
A ShellTextTale gives an interactive shell for testing. It’s intended to be interactive.
Implementations§
Source§impl ShellTextTale
impl ShellTextTale
Sourcepub fn new(rl: Editor<(), MemHistory>, prompt: &'static str) -> Self
pub fn new(rl: Editor<(), MemHistory>, prompt: &'static str) -> Self
Create a new texttale shell, using the provided readline editor and prompt.
Examples found in repository?
examples/texttale.rs (line 158)
144fn main() -> Result<()> {
145 // Create the line editor.
146 let config = Config::builder()
147 .max_history_size(1_000_000)?
148 .history_ignore_dups(true)?
149 .history_ignore_space(true)
150 .build();
151 let hist = MemHistory::new();
152 let rl = Editor::with_history(config, hist)?;
153
154 // Interpret the command line.
155 let mut args: Vec<String> = std::env::args().collect();
156 args.remove(0);
157 if args.is_empty() {
158 let tale = ShellTextTale::new(rl, "> ");
159 let mut player = Player::new(tale);
160 player.bootstrap();
161 Ok(())
162 } else {
163 for arg in args {
164 let tale = ExpectTextTale::new(arg, "> ")?;
165 let mut player = Player::new(tale);
166 player.bootstrap();
167 }
168 Ok(())
169 }
170}
More examples
examples/menu.rs (line 97)
83fn main() -> Result<()> {
84 // Create the line editor.
85 let config = Config::builder()
86 .max_history_size(1_000_000)?
87 .history_ignore_dups(true)?
88 .history_ignore_space(true)
89 .build();
90 let hist = MemHistory::new();
91 let rl = Editor::with_history(config, hist)?;
92
93 // Interpret the command line.
94 let mut args: Vec<String> = std::env::args().collect();
95 args.remove(0);
96 if args.is_empty() || args[0] == "shell" {
97 let tale = ShellTextTale::new(rl, "> ");
98 let mut player = Player::new(tale);
99 player.bootstrap();
100 Ok(())
101 } else if args[0] == "expect" {
102 let tale = ExpectTextTale::new("examples/10.arc", "> ")?;
103 let mut player = Player::new(tale);
104 player.bootstrap();
105 Ok(())
106 } else {
107 eprintln!("unknown command");
108 Ok(())
109 }
110}
Trait Implementations§
Source§impl TextTale for ShellTextTale
impl TextTale for ShellTextTale
Source§fn unexpected_eof(&mut self)
fn unexpected_eof(&mut self)
Handle an unexpected EOF.
Source§fn get_prompt(&mut self) -> &'static str
fn get_prompt(&mut self) -> &'static str
Get the current prompt.
Source§fn set_prompt(&mut self, prompt: &'static str)
fn set_prompt(&mut self, prompt: &'static str)
Set the current prompt.
Source§fn next_command(&mut self) -> Option<String>
fn next_command(&mut self) -> Option<String>
Return the next command, according to the texttale’s rules.
Source§impl Write for ShellTextTale
impl Write for ShellTextTale
Source§fn write(&mut self, buf: &[u8]) -> Result<usize, Error>
fn write(&mut self, buf: &[u8]) -> Result<usize, Error>
Writes a buffer into this writer, returning how many bytes were written. Read more
Source§fn flush(&mut self) -> Result<(), Error>
fn flush(&mut self) -> Result<(), Error>
Flushes this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · Source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
Auto Trait Implementations§
impl Freeze for ShellTextTale
impl !RefUnwindSafe for ShellTextTale
impl Send for ShellTextTale
impl Sync for ShellTextTale
impl Unpin for ShellTextTale
impl !UnwindSafe for ShellTextTale
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more