use super::*; use std::cmp::Ordering; pub enum Entry { File(BufferedFile), Directory(DirectoryListing), } #[derive(Copy, Clone, PartialEq, Eq)] pub enum EntryType { File, Directory, } impl PartialOrd for EntryType { fn partial_cmp(&self, other: &Self) -> Option { match (self, other) { (EntryType::Directory, EntryType::Directory) => Some(Ordering::Equal ), (EntryType::Directory, EntryType::File ) => Some(Ordering::Less ), (EntryType::File, EntryType::Directory) => Some(Ordering::Greater), (EntryType::File, EntryType::File ) => Some(Ordering::Equal ), } } } impl Ord for EntryType { fn cmp(&self, other: &Self) -> Ordering { match (self, other) { (EntryType::Directory, EntryType::Directory) => Ordering::Equal , (EntryType::Directory, EntryType::File ) => Ordering::Less , (EntryType::File, EntryType::Directory) => Ordering::Greater, (EntryType::File, EntryType::File ) => Ordering::Equal , } } }