diff options
Diffstat (limited to 'src/devices/file')
-rw-r--r-- | src/devices/file/directory_entry.rs | 2 | ||||
-rw-r--r-- | src/devices/file/directory_listing.rs | 18 | ||||
-rw-r--r-- | src/devices/file/entry.rs | 2 |
3 files changed, 11 insertions, 11 deletions
diff --git a/src/devices/file/directory_entry.rs b/src/devices/file/directory_entry.rs index 45de817..c4ce146 100644 --- a/src/devices/file/directory_entry.rs +++ b/src/devices/file/directory_entry.rs @@ -1,4 +1,4 @@ -use crate::*; +use super::*; use std::cmp::Ordering; diff --git a/src/devices/file/directory_listing.rs b/src/devices/file/directory_listing.rs index 1f94a3a..1295f8b 100644 --- a/src/devices/file/directory_listing.rs +++ b/src/devices/file/directory_listing.rs @@ -1,4 +1,4 @@ -use crate::*; +use super::*; use std::ffi::OsString; use std::os::unix::ffi::{OsStrExt, OsStringExt}; @@ -8,7 +8,7 @@ use std::path::{Component, Path, PathBuf}; pub struct DirectoryListing { children: Vec<DirectoryChild>, length: u32, - selected: u32, + selected: Option<u32>, name_buffer: CircularPathBuffer, } @@ -44,7 +44,7 @@ impl DirectoryListing { } children.sort_unstable(); let length = u32::try_from(children.len()).unwrap_or(u32::MAX); - let selected = 0; + let selected = None; let name_buffer = CircularPathBuffer::new(); Ok(Self { children, length, selected, name_buffer } ) } else { @@ -61,16 +61,16 @@ impl DirectoryListing { } pub fn selected(&self) -> u32 { - self.selected + self.selected.unwrap_or(0) } pub fn set_selected(&mut self, index: u32) { if let Some(info) = self.get(index) { self.name_buffer.populate(&info.byte_path.clone()); - self.selected = index; + self.selected = Some(index); } else { self.name_buffer.clear(); - self.selected = 0; + self.selected = None; } } @@ -79,14 +79,14 @@ impl DirectoryListing { } pub fn child_type(&self) -> Option<EntryType> { - self.get(self.selected).and_then(|i| Some(i.entry_type)) + self.selected.and_then(|s| self.get(s).and_then(|i| Some(i.entry_type))) } pub fn child_path(&self) -> Option<PathBuf> { - self.get(self.selected).and_then(|i| { + self.selected.and_then(|s| self.get(s).and_then(|i| { let os_string: OsString = OsStringExt::from_vec(i.byte_path.clone()); Some(os_string.into()) - }) + })) } } diff --git a/src/devices/file/entry.rs b/src/devices/file/entry.rs index a91ae82..d604bb7 100644 --- a/src/devices/file/entry.rs +++ b/src/devices/file/entry.rs @@ -1,4 +1,4 @@ -use crate::*; +use super::*; use std::cmp::Ordering; |