file_name.rs 630 B

1234567891011121314151617181920212223
  1. use crate::options::{flags, OptionsError};
  2. use crate::options::parser::MatchedFlags;
  3. use crate::output::file_name::{Options, Classify};
  4. impl Options {
  5. pub fn deduce(matches: &MatchedFlags<'_>) -> Result<Self, OptionsError> {
  6. let classify = Classify::deduce(matches)?;
  7. let icons = matches.has(&flags::ICONS)?;
  8. Ok(Self { classify, icons })
  9. }
  10. }
  11. impl Classify {
  12. fn deduce(matches: &MatchedFlags<'_>) -> Result<Self, OptionsError> {
  13. let flagged = matches.has(&flags::CLASSIFY)?;
  14. if flagged { Ok(Self::AddFileIndicators) }
  15. else { Ok(Self::JustFilenames) }
  16. }
  17. }