5 个版本 (3 个重大更改)

0.4.0 2023年5月25日
0.3.1 2023年2月17日
0.3.0 2023年1月18日
0.2.0 2023年1月11日
0.1.0 2023年1月11日

#2409 in 解析器实现

Download history 52/week @ 2024-07-29

52 个月下载量

MIT 许可证

41KB
1K SLoC

CSV Pipeline

csvsc 启发的 CSV 处理库

Crates.io Documentation

示例

use csv_pipeline::{Pipeline, Transformer};

let source = "\
  Person,Score\n\
  A,1\n\
  A,8\n\
  B,3\n\
  B,4\n";
let reader = csv::Reader::from_reader(source.as_bytes());
let csv = Pipeline::from_reader(reader)
  .unwrap()
  .map(|_headers, row| Ok(row))
  // Transform into a new csv
  .transform_into(|| {
    vec![
      // Keep every Person
      Transformer::new("Person").keep_unique(),
      // Sum the scores into a "Total score" column
      Transformer::new("Total score").from_col("Score").sum(0),
    ]
  })
  .collect_into_string()
  .unwrap();

assert_eq!(
  csv,
  "Person,Total score\n\
    A,9\n\
    B,7\n"
);

开发说明

开始使用

安装 Rust.

运行测试

cargo test

发布新版本

  1. 更新 CHANGELOG.md
  2. Cargo.toml 中提升版本号
  3. 运行 cargo test
  4. 运行 cargo publish
  5. 创建格式为 v#.#.# 的 git 标签
  6. 创建带有发行说明的 GitHub 发行版

依赖关系

~1.2–1.7MB
~21K SLoC