pub struct Parser<const OSC_RAW_BUF_SIZE: usize = MAX_OSC_RAW> { /* private fields */ }
Expand description
Parser for raw VTE protocol which delegates actions to a Perform
Generic over the value for the size of the raw Operating System Command
buffer. Only used when the no_std
feature is enabled.
Implementations§
source§impl Parser
impl Parser
sourcepub fn new() -> Parser
pub fn new() -> Parser
Create a new Parser
Examples found in repository?
examples/parselog.rs (line 56)
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
fn main() {
let input = io::stdin();
let mut handle = input.lock();
let mut statemachine = Parser::new();
let mut performer = Log;
let mut buf = [0; 2048];
loop {
match handle.read(&mut buf) {
Ok(0) => break,
Ok(n) => {
for byte in &buf[..n] {
statemachine.advance(&mut performer, *byte);
}
},
Err(err) => {
println!("err: {}", err);
break;
},
}
}
}
source§impl<const OSC_RAW_BUF_SIZE: usize> Parser<OSC_RAW_BUF_SIZE>
impl<const OSC_RAW_BUF_SIZE: usize> Parser<OSC_RAW_BUF_SIZE>
sourcepub fn new_with_size() -> Parser<OSC_RAW_BUF_SIZE>
pub fn new_with_size() -> Parser<OSC_RAW_BUF_SIZE>
Create a new Parser with a custom size for the Operating System Command buffer.
Call with a const-generic param on Parser
, like:
let mut p = vte::Parser::<64>::new_with_size();
sourcepub fn advance<P: Perform>(&mut self, performer: &mut P, byte: u8)
pub fn advance<P: Perform>(&mut self, performer: &mut P, byte: u8)
Advance the parser state
Requires a Perform
in case byte
triggers an action
Examples found in repository?
examples/parselog.rs (line 66)
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
fn main() {
let input = io::stdin();
let mut handle = input.lock();
let mut statemachine = Parser::new();
let mut performer = Log;
let mut buf = [0; 2048];
loop {
match handle.read(&mut buf) {
Ok(0) => break,
Ok(n) => {
for byte in &buf[..n] {
statemachine.advance(&mut performer, *byte);
}
},
Err(err) => {
println!("err: {}", err);
break;
},
}
}
}
Trait Implementations§
Auto Trait Implementations§
impl<const OSC_RAW_BUF_SIZE: usize> RefUnwindSafe for Parser<OSC_RAW_BUF_SIZE>
impl<const OSC_RAW_BUF_SIZE: usize> Send for Parser<OSC_RAW_BUF_SIZE>
impl<const OSC_RAW_BUF_SIZE: usize> Sync for Parser<OSC_RAW_BUF_SIZE>
impl<const OSC_RAW_BUF_SIZE: usize> Unpin for Parser<OSC_RAW_BUF_SIZE>
impl<const OSC_RAW_BUF_SIZE: usize> UnwindSafe for Parser<OSC_RAW_BUF_SIZE>
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