pub fn create_input_reader<P: AsRef<Path>>(
ident: Option<P>,
) -> Result<Box<dyn BufRead>>Expand description
Creates a reader from a string identifier.
Both None and Some("-") mean stdin.
§Example
use cli_utils_hoijui::create_input_reader;
let in_file = None as Option<&str>; // reads from stdin
let mut reader = create_input_reader(in_file)?;
let in_file = None as Option<&String>; // reads from stdin
let mut reader = create_input_reader(in_file)?;
let in_file = Some("-"); // reads from stdin
let mut reader = create_input_reader(in_file)?;
let in_file = Some("my_dir/my_file.txt"); // reads from file "$CWD/my_dir/my_file.txt"
let mut reader = create_input_reader(in_file)?;
let in_file = Some("my_dir/my_file.txt".to_string()); // reads from file "$CWD/my_dir/my_file.txt"
let mut reader = create_input_reader(in_file)?;
let path_buf = PathBuf::from_str("my_dir/my_file.txt").expect("This failing should be impossible!");
let in_file = Some(path_buf.as_path()); // reads from file "$CWD/my_dir/my_file.txt"
let mut reader = create_input_reader(in_file)?;
let in_file = Some(path_buf); // reads from file "$CWD/my_dir/my_file.txt"
let mut reader = create_input_reader(in_file)?;
let mut buffer = String::new();
loop {
let line_size = reader.read_line(&mut buffer)?;
if line_size == 0 {
break;
}
print!("{}", buffer);
}§Errors
If a file path is specified, and it is not possible to read from it.