1use crate::{FromInner, IntoInner};
2use uv::uv_stat_t;
3
4pub struct Stat {
6 pub dev: u64,
7 pub mode: u64,
8 pub nlink: u64,
9 pub uid: u64,
10 pub gid: u64,
11 pub rdev: u64,
12 pub ino: u64,
13 pub size: u64,
14 pub blksize: u64,
15 pub blocks: u64,
16 pub flags: u64,
17 pub gen: u64,
18 pub atim: crate::TimeSpec,
19 pub mtim: crate::TimeSpec,
20 pub ctim: crate::TimeSpec,
21 pub birthtim: crate::TimeSpec,
22}
23
24impl FromInner<*const uv_stat_t> for Stat {
25 fn from_inner(stat: *const uv_stat_t) -> Stat {
26 unsafe {
27 Stat {
28 dev: (*stat).st_dev,
29 mode: (*stat).st_mode,
30 nlink: (*stat).st_nlink,
31 uid: (*stat).st_uid,
32 gid: (*stat).st_gid,
33 rdev: (*stat).st_rdev,
34 ino: (*stat).st_ino,
35 size: (*stat).st_size,
36 blksize: (*stat).st_blksize,
37 blocks: (*stat).st_blocks,
38 flags: (*stat).st_flags,
39 gen: (*stat).st_gen,
40 atim: (*stat).st_atim.into_inner(),
41 mtim: (*stat).st_mtim.into_inner(),
42 ctim: (*stat).st_ctim.into_inner(),
43 birthtim: (*stat).st_birthtim.into_inner(),
44 }
45 }
46 }
47}