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}