• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #![stable(feature = "metadata_ext", since = "1.1.0")]
2 
3 use crate::fs::Metadata;
4 use crate::sys_common::AsInner;
5 
6 /// OS-specific extensions to [`fs::Metadata`].
7 ///
8 /// [`fs::Metadata`]: crate::fs::Metadata
9 #[stable(feature = "metadata_ext", since = "1.1.0")]
10 pub trait MetadataExt {
11     #[stable(feature = "metadata_ext2", since = "1.8.0")]
st_dev(&self) -> u6412     fn st_dev(&self) -> u64;
13     #[stable(feature = "metadata_ext2", since = "1.8.0")]
st_ino(&self) -> u6414     fn st_ino(&self) -> u64;
15     #[stable(feature = "metadata_ext2", since = "1.8.0")]
st_mode(&self) -> u3216     fn st_mode(&self) -> u32;
17     #[stable(feature = "metadata_ext2", since = "1.8.0")]
st_nlink(&self) -> u6418     fn st_nlink(&self) -> u64;
19     #[stable(feature = "metadata_ext2", since = "1.8.0")]
st_uid(&self) -> u3220     fn st_uid(&self) -> u32;
21     #[stable(feature = "metadata_ext2", since = "1.8.0")]
st_gid(&self) -> u3222     fn st_gid(&self) -> u32;
23     #[stable(feature = "metadata_ext2", since = "1.8.0")]
st_rdev(&self) -> u6424     fn st_rdev(&self) -> u64;
25     #[stable(feature = "metadata_ext2", since = "1.8.0")]
st_size(&self) -> u6426     fn st_size(&self) -> u64;
27     #[stable(feature = "metadata_ext2", since = "1.8.0")]
st_atime(&self) -> i6428     fn st_atime(&self) -> i64;
29     #[stable(feature = "metadata_ext2", since = "1.8.0")]
st_atime_nsec(&self) -> i6430     fn st_atime_nsec(&self) -> i64;
31     #[stable(feature = "metadata_ext2", since = "1.8.0")]
st_mtime(&self) -> i6432     fn st_mtime(&self) -> i64;
33     #[stable(feature = "metadata_ext2", since = "1.8.0")]
st_mtime_nsec(&self) -> i6434     fn st_mtime_nsec(&self) -> i64;
35     #[stable(feature = "metadata_ext2", since = "1.8.0")]
st_ctime(&self) -> i6436     fn st_ctime(&self) -> i64;
37     #[stable(feature = "metadata_ext2", since = "1.8.0")]
st_ctime_nsec(&self) -> i6438     fn st_ctime_nsec(&self) -> i64;
39     #[stable(feature = "metadata_ext2", since = "1.8.0")]
st_blksize(&self) -> u6440     fn st_blksize(&self) -> u64;
41     #[stable(feature = "metadata_ext2", since = "1.8.0")]
st_blocks(&self) -> u6442     fn st_blocks(&self) -> u64;
43 }
44 
45 #[stable(feature = "metadata_ext", since = "1.1.0")]
46 impl MetadataExt for Metadata {
st_dev(&self) -> u6447     fn st_dev(&self) -> u64 {
48         self.as_inner().as_inner().st_dev as u64
49     }
st_ino(&self) -> u6450     fn st_ino(&self) -> u64 {
51         self.as_inner().as_inner().st_ino as u64
52     }
st_mode(&self) -> u3253     fn st_mode(&self) -> u32 {
54         self.as_inner().as_inner().st_mode as u32
55     }
st_nlink(&self) -> u6456     fn st_nlink(&self) -> u64 {
57         self.as_inner().as_inner().st_nlink as u64
58     }
st_uid(&self) -> u3259     fn st_uid(&self) -> u32 {
60         self.as_inner().as_inner().st_uid as u32
61     }
st_gid(&self) -> u3262     fn st_gid(&self) -> u32 {
63         self.as_inner().as_inner().st_gid as u32
64     }
st_rdev(&self) -> u6465     fn st_rdev(&self) -> u64 {
66         self.as_inner().as_inner().st_rdev as u64
67     }
st_size(&self) -> u6468     fn st_size(&self) -> u64 {
69         self.as_inner().as_inner().st_size as u64
70     }
st_atime(&self) -> i6471     fn st_atime(&self) -> i64 {
72         self.as_inner().as_inner().st_atim.tv_sec
73     }
st_atime_nsec(&self) -> i6474     fn st_atime_nsec(&self) -> i64 {
75         self.as_inner().as_inner().st_atim.tv_nsec as i64
76     }
st_mtime(&self) -> i6477     fn st_mtime(&self) -> i64 {
78         self.as_inner().as_inner().st_mtim.tv_sec
79     }
st_mtime_nsec(&self) -> i6480     fn st_mtime_nsec(&self) -> i64 {
81         self.as_inner().as_inner().st_mtim.tv_nsec as i64
82     }
st_ctime(&self) -> i6483     fn st_ctime(&self) -> i64 {
84         self.as_inner().as_inner().st_ctim.tv_sec
85     }
st_ctime_nsec(&self) -> i6486     fn st_ctime_nsec(&self) -> i64 {
87         self.as_inner().as_inner().st_ctim.tv_nsec as i64
88     }
st_blksize(&self) -> u6489     fn st_blksize(&self) -> u64 {
90         self.as_inner().as_inner().st_blksize as u64
91     }
st_blocks(&self) -> u6492     fn st_blocks(&self) -> u64 {
93         self.as_inner().as_inner().st_blocks as u64
94     }
95 }
96