indexlake_storage_fs/
lib.rs1mod file;
2mod storage;
3
4pub use file::*;
5pub use storage::*;
6
7use indexlake::storage::{EntryMode, FileMetadata};
8use std::time::UNIX_EPOCH;
9
10pub(crate) fn parse_std_fs_metadata(metadata: &std::fs::Metadata) -> FileMetadata {
11 let size = metadata.len();
12 let last_modified = if let Ok(modified) = metadata.modified() {
13 Some(
14 modified
15 .duration_since(UNIX_EPOCH)
16 .expect("Time went backwards")
17 .as_millis() as i64,
18 )
19 } else {
20 None
21 };
22 let mode = if metadata.is_dir() {
23 EntryMode::Directory
24 } else if metadata.is_file() {
25 EntryMode::File
26 } else {
27 EntryMode::Unknown
28 };
29 FileMetadata {
30 size,
31 last_modified,
32 mode,
33 }
34}