Skip to content

sandwich-go/xtime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
huangqing.zhu
Jul 16, 2024
38841d8 · Jul 16, 2024

History

19 Commits
Mar 29, 2022
Nov 15, 2023
Nov 15, 2023
Aug 24, 2022
Feb 10, 2022
Feb 10, 2022
Feb 10, 2022
Feb 10, 2022
Jul 16, 2024
Feb 10, 2022
Feb 12, 2022
Feb 10, 2022
Feb 10, 2022
Mar 29, 2022
Nov 15, 2023
Feb 10, 2022
Feb 10, 2022

Repository files navigation

xtime

模拟Golang标准库Time接口,提供Freeze,Travel等功能。

Run xtime Example: run on repl.it

type Clock interface {
	After(d time.Duration) <-chan time.Time
	Now() time.Time
	Since(t time.Time) time.Duration
	Until(t time.Time) time.Duration
	Sleep(d time.Duration)
	Tick(d time.Duration) <-chan time.Time
	NewTicker(d time.Duration) *MockTicker
	Timer(d time.Duration) *MockTimer
	AfterFunc(d time.Duration, f func()) *MockTimer
	WithDeadline(parent context.Context, d time.Time) (context.Context, context.CancelFunc)
	WithTimeout(parent context.Context, t time.Duration) (context.Context, context.CancelFunc)
}

type Cop interface {
	Freeze(t time.Time)
	Travel(t time.Time)
	Scale(scale float64)
	Return()
	ApplyOption(...Option) []Option
}

type Mock interface {
	Clock
	Cop
}