我正在尝试键入一个io::stdio实例并BufReader包装一个文件,以便我可以编写假设缓冲输入源的代码。我尝试了几种尝试将 an 转换io::stdio()为一种BufRead类型的变体,但都因以下一个或多个变体而失败:
error: mismatched types:
expected `std::io::stdio::StdinLock<'_>`,
found `std::io::buffered::BufReader<std::fs::File>`
(expected struct `std::io::stdio::StdinLock`,
found struct `std::io::buffered::BufReader`) [E0308]
csv_to_json.rs:26 reader = BufReader::new(file.unwrap());
Run Code Online (Sandbox Code Playgroud)
这是代码:
use std::io;
use std::io::BufReader;
use std::io::prelude::*;
use std::env;
use std::process::exit;
use std::fs::File;
fn usage() {
println!("Usage: cat input.csv | csv_to_json");
}
fn main() {
let stdin = io::stdin();
let mut reader = stdin.lock(); // Assignment. (1)
let args: Vec<String> = env::args().collect();
if args.len() > 1 {
usage();
exit(1);
} else …Run Code Online (Sandbox Code Playgroud) rust ×1