From 6b3796c9a0d3a2f1422bcbde4790c43417659722 Mon Sep 17 00:00:00 2001 From: Ben Bridle Date: Tue, 16 Apr 2024 10:51:13 +1200 Subject: Update devices to match new specifications --- src/devices/file/directory_entry.rs | 2 +- src/devices/file/directory_listing.rs | 18 +++++++++--------- src/devices/file/entry.rs | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) (limited to 'src/devices/file') 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, length: u32, - selected: u32, + selected: Option, 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 { - 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 { - 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; -- cgit v1.2.3-70-g09d2