从标准输入或文件中读取(正确设置类型)

时间:2019-08-22 14:14:26

标签: rust

我的Rust程序应该从stdin或从S3上存储的文件中读取。目前我有这样的东西:

fn load_from_s3(url: &String) -> impl Read {
    // ...  
    BufReader::new(some_stream)
}

// ...

let reader = match cli.value_of("s3_url") {
      Some(url) => csv::Reader::from_reader(load_from_s3(&url.to_string())),
      None => {
          let lock = io::stdin().lock();
          csv::Reader::from_reader(lock)
      }
  };

Some分支警告我有关this is found to be of type csv::reader::Reader<impl std::io::Read>的信息。 None分支给我错误expected opaque type, found struct std::io::StdinLock。我对Rust还是很陌生,无法弄清楚如何正确选择类型。

0 个答案:

没有答案