sane_fmt/cli_opt/input_stream_address.rs
1use pipe_trait::*;
2use std::{path::PathBuf, str::FromStr};
3
4#[derive(Debug, PartialEq, Clone)]
5pub enum InputStreamAddress {
6 Stdin,
7 File(PathBuf),
8}
9
10impl FromStr for InputStreamAddress {
11 type Err = String;
12
13 fn from_str(path: &str) -> Result<Self, Self::Err> {
14 Ok(if path == "-" {
15 InputStreamAddress::Stdin
16 } else {
17 path.pipe(PathBuf::from).pipe(InputStreamAddress::File)
18 })
19 }
20}