summaryrefslogtreecommitdiffstats
path: root/src/options/file_name.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/options/file_name.rs')
-rw-r--r--src/options/file_name.rs21
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) }
+ }
+}