3 个版本

0.1.2 2022 年 1 月 17 日
0.1.1 2022 年 1 月 17 日
0.1.0 2022 年 1 月 4 日

#1287 in 文件系统

Download history 79/week @ 2024-04-01 13/week @ 2024-04-08 16/week @ 2024-04-15 22/week @ 2024-04-22 17/week @ 2024-04-29 24/week @ 2024-05-06 17/week @ 2024-05-13 22/week @ 2024-05-20 14/week @ 2024-05-27 17/week @ 2024-06-03 15/week @ 2024-06-10 18/week @ 2024-06-17 34/week @ 2024-06-24 12/week @ 2024-07-01 12/week @ 2024-07-15

60 个每月下载量
4 crates 使用

Apache-2.0

23KB
460

ezio - 一个易于使用的 IO 库

ezio 提供了一个易于使用的 IO API,用于读取和写入文件以及 stdio。ezio 包含生成随机数和其他类似 IO 的功能。性能和惯用错误处理不是目标,因此 ezio 可能不适合生产使用。它更适合教育、实验和原型设计。

ezio 包装了标准库的 IO API 和其他成熟的 crates,并设计为与它们交互,因此 ezio 应该与大多数上游库兼容。

示例

use ezio::prelude::*;

fn main() {
    // Read a line from stdin
    let _ = stdio::read_line();

    // Iterate lines in a file
    for line in file::reader("path/to/file.txt") {
        // ...
    }

    // Read a whole file
    let _ = file::read("path/to/file.txt");

    // Write to a file
    file::write("path/to/file.txt", "Some text");

    // Write multiple things to a file
    let mut w = file::writer("path/to/file.txt");
    w.write("Some text\n");
    w.write("Some more text");

    // Generates a random u32
    let _ = random::u32();
}

设计原则

(ezio 正在开发中,因此这些可能仍然是目标)

  • 易于使用!
  • 易于导入 - 提供一个预导入文件,大多数用户将不需要其他任何东西
  • 简单的模块层次结构
  • 默认基于字符串,而不是基于字节
  • 喜欢 panic:默认 panic,当您真正需要错误时使用 try_ 版本的函数
  • 喜欢分配:返回字符串等,而不是接受缓冲区
  • 与 std IO 兼容并可互操作,因此程序可以逐步从 ezio 迁移到 std::io
  • 仅仅因为我们正在进行简单的 IO,并不意味着程序的其他部分也是简单的。因此
    • 应该是惯用的 Rust
    • 应该支持泛型和 trait 对象等

依赖关系

~305KB