1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2015年8月5日

#19 in #input-stream

21 每月下载次数

MIT 许可证

11KB
126

scan

Rust 的标记/解析实用工具

允许将输入流中的空白分隔标记解析为任何实现 FromStr 的类型。

示例

extern crate scan;
use scan::Scan;

fn main() {
  let mut scanner = scan::from_stdin();
  let int = scanner.next::<i32>().unwrap();
  let int2: i32 = scanner.next().unwrap();
  println!("Integer: {}", int);
  println!("Integer 2: {}" int2);
}

获取

这个包可以通过 crates.io 获取。需要注意的是,这个包需要 nightly rust,因为 io 模块的不稳定性。

文档

文档托管在 这里


lib.rs:

这个包旨在帮助从输入流(或任何其他实现 Read 的结构)中解析值。它通过提供一个 trait,Scan 来实现,可以使用它来标记和解析输入。

这个包还提供了一个 Scan 的实现,Scanner(struct.Scanner.html)。

快速开始

只需在项目的顶部包含 extern crate scan,将 scan = "0.1.0" 添加到项目依赖中,您就可以开始了!

use scan::Scan;
let mut scanner = scan::from_stdin();
let my_int = scanner.next::<i32>();
match my_int {
    Ok(int) => println!("Integer: {}", int),
    Err(e) => println!("Error: {}", e),
}

功能

这个包提供了一个内置的 Scan 实现:Scanner。Scanner 可以从任何实现 read 的结构体创建,并提供了一些辅助函数,可以简洁地创建文件或标准输入的 Scanner。

默认情况下,Scanner 将空白(空格、制表符、换行符和回车符)视为要解析的分隔符;然而,您也可以提供不同的分隔符集。

Scan 允许解析任何实现 std::str::FromStr 的结构体。这包括 Rust 语言中大多数内置类型,但您也可以为任何自定义类型实现 FromStr。

无运行时依赖