package atime import ( "time" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark" ) // ATime -- метка времени. // Вывод: "2006-01-02 15:04:05.000 -07 MST". type ATime struct { val *quark.QStr[quark.Fix] } // FnOptAtime -- тп функции опции времени для установки значения. type FnOptAtime func() string // OptAtime -- функция для установки значения. func OptAtime(val string) FnOptAtime { return func() string { return val } } // NewATime -- создает новый экземпляр ATime. func NewATime(lstFn ...FnOptAtime) *ATime { var val string for _, fn := range lstFn { val = fn() } if val == "" { val = time.Now().Local().Format("2006-01-02 15:04:05.000 -07 MST") } qStr := quark.NewQStr(val) return &ATime{ val: qStr, } } // String -- возвращает строку. // //go:fix inline func (a *ATime) String() string { return a.val.Val().Get() } // Get -- возвращает строку. // //go:fix inline func (a *ATime) Get() string { return a.val.Val().Get() } // ATimeMut -- метка времени. // Вывод: "2006-01-02 15:04:05.000 -07 MST". type ATimeMut struct { val *quark.QStr[quark.Mut] } // NewATimeMut -- создает новый экземпляр ATimeMut. func NewATimeMut(lstFn ...FnOptAtime) *ATimeMut { var val string for _, fn := range lstFn { val = fn() } if val == "" { val = time.Now().Local().Format("2006-01-02 15:04:05.000 -07 MST") } qStr := quark.NewQStrMut(val) return &ATimeMut{ val: qStr, } }