1 unstable release
0.1.3 | Jun 24, 2023 |
---|---|
0.1.2 |
|
0.1.1 |
|
0.1.0 |
|
#1059 in Command-line interface
25KB
581 lines
CSI parser
This is a simple CSI parser that only provides parsing for a subset of common CSI.
This repository was inspired by cansi
If you have additional requirements, feel free to submit a PR (Pull Request)
Please refer to the definition of CSI.
See the rs docs.
Look at progress and contribute on github.
Example
use csi_parser::iter::{CsiParser, Output};
fn main() {
let text = "👋, \x1b[31;4m🌍\x1b[0m!";
let result: Vec<Output> = text.csi_parser().skip(1).collect();
for out in result {
match out {
Output::Text(txt) => {
println!("{}", txt);
}
Output::Escape(csi_seq) => {
println!("{}", csi_seq);
}
}
}
}
and you will be got the result:
[Some(31);None;Some(4)m
🌍
[Some(0);None;Nonem
Features
To support the no_std
feature, you simply need to run cargo add --no-default-features -F no_std
to your project.