#csv #comma #separated #delimited #rfc4180

csvrow

快速简单的crate,用于接受字符串切片并按RFC-4180规范遍历字段

3个不稳定版本

0.2.1 2024年4月30日
0.1.1 2024年3月18日
0.1.0 2024年3月18日

1631解析实现

每月41次下载

Unlicense/MIT

12KB
274

csvrow

=== 一个小型快速实用库,允许您将表示CSV文件行的字符串切片包装起来并遍历其字段。符合RFC 4180(CSV格式)和UTF8。

使用方法

直接在您的 Cargo.toml 文件中添加 csvrow,或者 alternatively 在项目根目录的终端提示符中输入 cargo add csvrow

示例

从字符串切片创建CSV行并将其结果收集到Vec中

use CsvRow::*;

fn get_fields() {

    let row = "rust,is,awesome";
    let csv = CsvRow::new(row, ',', false);
    let vec_t: Vec<_> = csv.collect();
}

默认情况下,将解析并取消转义用引号括起来的字段或包含转义引号(根据RFC 4180)。可以通过CsvRow::new的'literal'参数来覆盖此行为

use CsvRow::*;

fn get_fields() {

    let row = r#""rust",is,"Awesome ""bring me the"" Sauce""#;
    let csv = CsvRow::new(row, ',', false);
    let vec_t: Vec<_> = csv.collect();

    // Will yield:
    // rust
    // is
    // Awesome "bring me the" Sauce

    let row = r#""rust",is,"Awesome ""bring me the"" Sauce""#;
    let csv = CsvRow::new(row, ',', true);
    let vec_t: Vec<_> = csv.collect();

    // Will yield:
    // "rust"
    // is
    // "Awesome ""bring me the"" Sauce"
}

许可证:Unlicense/MIT

无运行时依赖