#csi #parser #ansi #ansi-term #terminal

无 std csi_parser

CSI 转义码解析器

1 个不稳定版本

0.1.3 2023年6月24日
0.1.2 2023年6月5日
0.1.1 2023年5月28日
0.1.0 2023年5月27日

#1002 in 命令行界面

36 每月下载量

MIT 许可证

25KB
581 代码行数

CSI 解析器

这是一个简单的 CSI 解析器,仅提供对常见 CSI 子集的解析。

此存储库受到 cansi 的启发

如果您有其他要求,请随时提交 PR(Pull Request)

请参阅 CSI 的定义

请参阅 rs 文档

github 上查看进度并贡献

示例

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);
            }
        }
    }
}

您将得到以下结果

[Some(31);None;Some(4)m
🌍
[Some(0);None;Nonem

特性

为了支持 no_std 特性,您只需在您的项目中运行以下命令:cargo add --no-default-features -F no_std

无运行时依赖

特性