xref: /drstd/src/std/os/nto/fs.rs (revision 86982c5e9b2eaa583327251616ee822c36288824)
1 use crate::std::fs::Metadata;
2 use crate::std::sys_common::AsInner;
3 
4 pub trait MetadataExt {
5     fn st_dev(&self) -> u64;
6     fn st_ino(&self) -> u64;
7     fn st_mode(&self) -> u32;
8     fn st_nlink(&self) -> u64;
9     fn st_uid(&self) -> u32;
10     fn st_gid(&self) -> u32;
11     fn st_rdev(&self) -> u64;
12     fn st_size(&self) -> u64;
13     fn st_atime(&self) -> i64;
14     fn st_atime_nsec(&self) -> i64;
15     fn st_mtime(&self) -> i64;
16     fn st_mtime_nsec(&self) -> i64;
17     fn st_ctime(&self) -> i64;
18     fn st_ctime_nsec(&self) -> i64;
19     fn st_blksize(&self) -> u64;
20     fn st_blocks(&self) -> u64;
21 }
22 
23 impl MetadataExt for Metadata {
24     fn st_dev(&self) -> u64 {
25         self.as_inner().as_inner().st_dev as u64
26     }
27     fn st_ino(&self) -> u64 {
28         self.as_inner().as_inner().st_ino as u64
29     }
30     fn st_mode(&self) -> u32 {
31         self.as_inner().as_inner().st_mode as u32
32     }
33     fn st_nlink(&self) -> u64 {
34         self.as_inner().as_inner().st_nlink as u64
35     }
36     fn st_uid(&self) -> u32 {
37         self.as_inner().as_inner().st_uid as u32
38     }
39     fn st_gid(&self) -> u32 {
40         self.as_inner().as_inner().st_gid as u32
41     }
42     fn st_rdev(&self) -> u64 {
43         self.as_inner().as_inner().st_rdev as u64
44     }
45     fn st_size(&self) -> u64 {
46         self.as_inner().as_inner().st_size as u64
47     }
48     fn st_atime(&self) -> i64 {
49         self.as_inner().as_inner().st_atim.tv_sec as i64
50     }
51     fn st_atime_nsec(&self) -> i64 {
52         self.as_inner().as_inner().st_atim.tv_nsec as i64
53     }
54     fn st_mtime(&self) -> i64 {
55         self.as_inner().as_inner().st_mtim.tv_sec as i64
56     }
57     fn st_mtime_nsec(&self) -> i64 {
58         self.as_inner().as_inner().st_mtim.tv_nsec as i64
59     }
60     fn st_ctime(&self) -> i64 {
61         self.as_inner().as_inner().st_ctim.tv_sec as i64
62     }
63     fn st_ctime_nsec(&self) -> i64 {
64         self.as_inner().as_inner().st_ctim.tv_nsec as i64
65     }
66     fn st_blksize(&self) -> u64 {
67         self.as_inner().as_inner().st_blksize as u64
68     }
69     fn st_blocks(&self) -> u64 {
70         self.as_inner().as_inner().st_blocks as u64
71     }
72 }
73