add file size to FileEngine (#2323)

This commit is contained in:
Chris Rogus authored and GitHub committed 2024-06-10 20:48:36 -07:00
1 parent 9d55bfc1dc
commit d0f0548776
3 files changed
+18

No files matched your search

+8
View File
@@ -20,6 +20,11 @@ impl FileEngine for SerializedFileEngine {
self.files.keys().cloned().collect()
}
async fn file_size(&self, file: &str) -> Option<u64> {
let file = self.files.get(file)?;
Some(file.len() as u64)
}
async fn read_file(&self, file: &str) -> Option<Vec<u8>> {
self.files.get(file).cloned()
}
@@ -42,6 +47,9 @@ pub trait FileEngine {
// get a list of file names
fn files(&self) -> Vec<String>;
// get the size of a file
async fn file_size(&self, file: &str) -> Option<u64>;
// read a file to bytes
async fn read_file(&self, file: &str) -> Option<Vec<u8>>;
@@ -25,6 +25,11 @@ impl FileEngine for NativeFileEngine {
.collect()
}
async fn file_size(&self, file: &str) -> Option<u64> {
let file = File::open(file).await.ok()?;
Some(file.metadata().await.ok()?.len())
}
async fn read_file(&self, file: &str) -> Option<Vec<u8>> {
let mut file = File::open(file).await.ok()?;
+5
View File
@@ -42,6 +42,11 @@ impl FileEngine for WebFileEngine {
.collect()
}
async fn file_size(&self, file: &str) -> Option<u64> {
let file = self.find(file)?;
Some(file.size() as u64)
}
// read a file to bytes
async fn read_file(&self, file: &str) -> Option<Vec<u8>> {
let file = self.find(file)?;