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

0.4.0 2019 年 6 月 1 日
0.3.0 2018 年 4 月 6 日
0.2.0 2017 年 2 月 4 日
0.1.1 2016 年 12 月 25 日
0.1.0 2016 年 12 月 21 日

#333解析工具

MIT 许可证

12KB
199

input-stream

一个 Rust 库,提供类似于 C++ *fstreams 的输入流。

Pipelines Crates.io Docs License: MIT

用法

模块文档及示例.

许可证

input-stream 采用 MIT 许可证分发。

有关详细信息,请参阅 LICENSE.txt


lib.rs:

一个小的实用库,用于类似 C++ istream 的输入解析。

它公开了一个结构体 InputStream,该结构体包装了实现了 std::io::BufRead 的任何对象。

它可以解析实现了 std::str::FromStr 的任何类型。

用法

此软件包位于 crates.io 上,可以通过将 input-stream 添加到项目 Cargo.toml 中的依赖项来使用。

[dependencies]
input-stream = "0.3.0"

并在 crate 根目录中添加以下内容

extern crate input_stream;

示例

use std::io;
use input_stream::InputStream;

let mut input = InputStream::new(buf_reader);
let value = input.scan::<bool>();
match value {
    Ok(value) => println!("Successfully read boolean: {}", value),
    Err(err) => println!("Error reading value: {:?}", err)
}

从标准输入读取

use std::io;
use input_stream::InputStream;

let stdin = io::stdin();
let mut input = InputStream::new(stdin.lock());

let integer: i32 = input.scan().expect("An integer");
let string: String = input.scan().expect("A string");

println!("Read the number: {} and the string {}", integer, string);

或从文件读取

use std::io::{self, BufReader};
use std::fs::File;
use input_stream::InputStream;

let mut input = InputStream::new(
    BufReader::new(File::open("name_of_file.txt").expect("a file named name_of_file.txt")));

let value: f32 = input.scan().expect("A floating point number");

println!("Read a float: {}", value);

无运行时依赖