mirror of
https://github.com/rclone/rclone.git
synced 2025-08-18 09:30:03 +02:00
vendor: vfs add vendor/github.com/djherbis/times
This commit is contained in:
79
vendor/github.com/djherbis/times/times.go
generated
vendored
Normal file
79
vendor/github.com/djherbis/times/times.go
generated
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
// Package times provides a platform-independent way to get atime, mtime, ctime and btime for files.
|
||||
package times
|
||||
|
||||
import (
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Get returns the Timespec for the given FileInfo
|
||||
func Get(fi os.FileInfo) Timespec {
|
||||
return getTimespec(fi)
|
||||
}
|
||||
|
||||
// Stat returns the Timespec for the given filename.
|
||||
func Stat(name string) (Timespec, error) {
|
||||
if hasPlatformSpecificStat {
|
||||
if ts, err := platformSpecficStat(name); err == nil {
|
||||
return ts, nil
|
||||
}
|
||||
}
|
||||
|
||||
fi, err := os.Stat(name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return getTimespec(fi), nil
|
||||
}
|
||||
|
||||
// Timespec provides access to file times.
|
||||
// ChangeTime() panics unless HasChangeTime() is true and
|
||||
// BirthTime() panics unless HasBirthTime() is true.
|
||||
type Timespec interface {
|
||||
ModTime() time.Time
|
||||
AccessTime() time.Time
|
||||
ChangeTime() time.Time
|
||||
BirthTime() time.Time
|
||||
HasChangeTime() bool
|
||||
HasBirthTime() bool
|
||||
}
|
||||
|
||||
type atime struct {
|
||||
v time.Time
|
||||
}
|
||||
|
||||
func (a atime) AccessTime() time.Time { return a.v }
|
||||
|
||||
type ctime struct {
|
||||
v time.Time
|
||||
}
|
||||
|
||||
func (ctime) HasChangeTime() bool { return true }
|
||||
|
||||
func (c ctime) ChangeTime() time.Time { return c.v }
|
||||
|
||||
type mtime struct {
|
||||
v time.Time
|
||||
}
|
||||
|
||||
func (m mtime) ModTime() time.Time { return m.v }
|
||||
|
||||
type btime struct {
|
||||
v time.Time
|
||||
}
|
||||
|
||||
func (btime) HasBirthTime() bool { return true }
|
||||
|
||||
func (b btime) BirthTime() time.Time { return b.v }
|
||||
|
||||
type noctime struct{}
|
||||
|
||||
func (noctime) HasChangeTime() bool { return false }
|
||||
|
||||
func (noctime) ChangeTime() time.Time { panic("ctime not available") }
|
||||
|
||||
type nobtime struct{}
|
||||
|
||||
func (nobtime) HasBirthTime() bool { return false }
|
||||
|
||||
func (nobtime) BirthTime() time.Time { panic("birthtime not available") }
|
Reference in New Issue
Block a user