summaryrefslogtreecommitdiffstats
path: root/src/fs/metadata.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/fs/metadata.rs')
-rw-r--r--src/fs/metadata.rs46
1 files changed, 33 insertions, 13 deletions
diff --git a/src/fs/metadata.rs b/src/fs/metadata.rs
index e71f793..aa6dcad 100644
--- a/src/fs/metadata.rs
+++ b/src/fs/metadata.rs
@@ -1,4 +1,4 @@
-use std::{fs, path, process, time};
+use std::{fs, io, path, process, time};
#[derive(Clone, Debug)]
pub enum FileType {
@@ -9,10 +9,10 @@ pub enum FileType {
#[derive(Clone, Debug)]
pub struct JoshutoMetadata {
- pub len: u64,
- pub modified: time::SystemTime,
- pub permissions: fs::Permissions,
- pub file_type: FileType,
+ _len: u64,
+ _modified: time::SystemTime,
+ _permissions: fs::Permissions,
+ _file_type: FileType,
pub mimetype: Option<String>,
#[cfg(unix)]
pub uid: u32,
@@ -23,15 +23,15 @@ pub struct JoshutoMetadata {
}
impl JoshutoMetadata {
- pub fn from(path: &path::Path) -> std::io::Result<Self> {
+ pub fn from(path: &path::Path) -> io::Result<Self> {
#[cfg(unix)]
use std::os::unix::fs::MetadataExt;
let metadata = fs::symlink_metadata(path)?;
- let len = metadata.len();
- let modified = metadata.modified()?;
- let permissions = metadata.permissions();
+ let _len = metadata.len();
+ let _modified = metadata.modified()?;
+ let _permissions = metadata.permissions();
let file_type = metadata.file_type();
let file_type = if file_type.is_dir() {
@@ -65,10 +65,10 @@ impl JoshutoMetadata {
let mode = metadata.mode();
Ok(Self {
- len,
- modified,
- permissions,
- file_type,
+ _len,
+ _modified,
+ _permissions,
+ _file_type: file_type,
mimetype,
#[cfg(unix)]
uid,
@@ -78,6 +78,26 @@ impl JoshutoMetadata {
mode,
})
}
+
+ pub fn len(&self) -> u64 {
+ self._len
+ }
+
+ pub fn modified(&self) -> time::SystemTime {
+ self._modified
+ }
+
+ pub fn permissions_ref(&self) -> &fs::Permissions {
+ &self._permissions
+ }
+
+ pub fn permissions_mut(&mut self) -> &mut fs::Permissions {
+ &mut self._permissions
+ }
+
+ pub fn file_type(&self) -> &FileType {
+ &self._file_type
+ }
}
fn file_mimetype(path: &path::Path) -> Option<String> {