diff options
| author | Ayush Singh <ayush@beagleboard.org> | 2025-03-09 15:39:04 +0530 |
|---|---|---|
| committer | Ayush Singh <ayush@beagleboard.org> | 2025-03-10 08:16:56 +0530 |
| commit | c717cc7cd2e2ce9f3da069abd7781f366a87e64e (patch) | |
| tree | fe6f7a547623f812c8459923d68815b1cdb25887 | |
| parent | 1833737e165ffc78b9b6318ab5bea7478945cc7a (diff) | |
| download | rust-c717cc7cd2e2ce9f3da069abd7781f366a87e64e.tar.gz rust-c717cc7cd2e2ce9f3da069abd7781f366a87e64e.zip | |
uefi: fs: Implement FileType
- Similar to FilePermissions, using bool to represent the bitfield. - FileType cannot be changed, so no need to worry about converting back to attribute. Signed-off-by: Ayush Singh <ayush@beagleboard.org>
| -rw-r--r-- | library/std/src/sys/fs/uefi.rs | 40 |
1 files changed, 10 insertions, 30 deletions
diff --git a/library/std/src/sys/fs/uefi.rs b/library/std/src/sys/fs/uefi.rs index 9b8fd599789..188f712fb84 100644 --- a/library/std/src/sys/fs/uefi.rs +++ b/library/std/src/sys/fs/uefi.rs @@ -1,6 +1,6 @@ use crate::ffi::OsString; use crate::fmt; -use crate::hash::{Hash, Hasher}; +use crate::hash::Hash; use crate::io::{self, BorrowedCursor, IoSlice, IoSliceMut, SeekFrom}; use crate::path::{Path, PathBuf}; use crate::sys::time::SystemTime; @@ -27,7 +27,9 @@ pub struct FileTimes {} // Bool indicates if file is readonly pub struct FilePermissions(bool); -pub struct FileType(!); +#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)] +// Bool indicates if directory +pub struct FileType(bool); #[derive(Debug)] pub struct DirBuilder {} @@ -95,39 +97,17 @@ impl FileType { } pub fn is_file(&self) -> bool { - self.0 + !self.is_dir() } + // Symlinks are not supported in UEFI pub fn is_symlink(&self) -> bool { - self.0 + false } -} -impl Clone for FileType { - fn clone(&self) -> FileType { - self.0 - } -} - -impl Copy for FileType {} - -impl PartialEq for FileType { - fn eq(&self, _other: &FileType) -> bool { - self.0 - } -} - -impl Eq for FileType {} - -impl Hash for FileType { - fn hash<H: Hasher>(&self, _h: &mut H) { - self.0 - } -} - -impl fmt::Debug for FileType { - fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result { - self.0 + #[expect(dead_code)] + const fn from_attr(attr: u64) -> Self { + Self(attr & r_efi::protocols::file::DIRECTORY != 0) } } |
