1package extstat
2
3import (
4	"os"
5	"syscall"
6	"time"
7)
8
9func timespecToTime(ts syscall.Timespec) time.Time {
10	return time.Unix(int64(ts.Sec), int64(ts.Nsec))
11}
12
13func New(fi os.FileInfo) *ExtraStat {
14	osStat := fi.Sys().(*syscall.Stat_t)
15	return &ExtraStat{
16		AccessTime: timespecToTime(osStat.Atimespec),
17		ModTime:    fi.ModTime(),
18		ChangeTime: timespecToTime(osStat.Ctimespec),
19		BirthTime:  timespecToTime(osStat.Birthtimespec),
20	}
21}
22