summaryrefslogtreecommitdiffstats
path: root/src/options/file_name.rs
blob: 9092b8c935ed51d175610d2700caf04fc573cc85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use crate::options::{flags, OptionsError};
use crate::options::parser::MatchedFlags;

use crate::output::file_name::{Options, Classify};


impl Options {
    pub fn deduce(matches: &MatchedFlags<'_>) -> Result<Self, OptionsError> {
        Classify::deduce(matches)
                 .map(|classify| Self { classify })
    }
}

impl Classify {
    fn deduce(matches: &MatchedFlags<'_>) -> Result<Self, OptionsError> {
        let flagged = matches.has(&flags::CLASSIFY)?;

        if flagged { Ok(Self::AddFileIndicators) }
              else { Ok(Self::JustFilenames) }
    }
}