diff options
Diffstat (limited to 'src/options/file_name.rs')
-rw-r--r-- | src/options/file_name.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/options/file_name.rs b/src/options/file_name.rs new file mode 100644 index 0000000..9092b8c --- /dev/null +++ b/src/options/file_name.rs @@ -0,0 +1,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) } + } +} |