floreum_parser/
metadata.rs1use serde::{Deserialize, Serialize};
2#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
3pub enum FileType {
4 File,
5 Dir,
6}
7#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
8pub enum SeekFrom {
9 Start(u64),
10 End(i64),
11 Current(i64),
12}
13#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
14pub struct OpenOptions {
15 pub read: bool,
16 pub write: bool,
17 pub append: bool,
18 pub truncate: bool,
19 pub create: bool,
20 pub create_new: bool,
21}
22#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize, Default)]
23pub struct Permit {
24 pub read: bool,
25 pub write: bool,
26 pub append: bool,
27 pub permit: bool,
28 pub read_times: bool,
29 pub write_times: bool,
30 pub link: bool,
31}
32#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
33pub struct Timestamp {
34 pub secs: i64,
35 pub nanos: u32,
36}
37#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
38pub struct Metadata {
39 pub permit: Permit,
40 pub file_type: FileType,
41 pub length: u64,
42 pub accessed: Option<Timestamp>,
43 pub modified: Option<Timestamp>,
44 pub created: Option<Timestamp>,
45}
46#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
47pub struct Entry<N: AsRef<str>> {
48 pub metadata: Metadata,
49 pub name: N,
50}