| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package etime
- import (
- "time"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/core_spec"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/tuf"
- )
- // ETime -- метка времени.
- // Вывод: "2006-01-02 15:04:05.000 -07 MST".
- type ETime struct {
- core_spec.ITimeFix
- isFill defs.Bool // Признак заполнения
- }
- // NewETime -- создает новый экземпляр ETime.
- func NewETime(val core_spec.ITimeFix) core_spec.ITime {
- helpers.If(val.Get() == "").Hassert("NewETime(): val is empty")
- sf := &ETime{
- ITimeFix: val,
- isFill: true,
- }
- return sf
- }
- // NewETimeAuto -- создаёт фиксированную авто-метку времени.
- func NewETimeAuto() core_spec.ITime {
- sf := &ETime{
- isFill: true,
- }
- val := defs.TxtFix(time.Now().Local().Format("2006-01-02 15:04:05.000 -07 MST"))
- sf.Set(core_spec.ITimeFix(val))
- return sf
- }
- // NewETimeAutoMut -- создаёт изменяемую авто-метку времени.
- func NewETimeAutoMut() core_spec.ITimeMut {
- sf := &ETime{
- isFill: true,
- }
- val := defs.TxtFix(time.Now().Local().Format("2006-01-02 15:04:05.000 -07 MST"))
- sf.Set(val)
- return sf
- }
- // String -- возвращает строку.
- func (sf *ETime) String() string {
- helpers.If(sf.Get() == "").Hassert("ETime.String(): значение не инициализировано")
- return sf.ITimeFix.String()
- }
- // Time -- возвращает типизированную строку.
- func (sf *ETime) Time() core_spec.ITimeFix {
- helpers.If(sf.Get() == "").Hassert("ETime.Time(): значение не инициализировано")
- return sf.ITimeFix
- }
- // Set -- устанавливает типизированное значение.
- func (sf *ETime) Set(val core_spec.ITimeFix) {
- helpers.If(val.Get() == "").Hassert("ETime.Set(): val is empty")
- sf.ITimeFix = val
- }
- // ToTuf -- сериализует себя в строку.
- func (sf *ETime) ToTuf() defs.ATxt {
- txtRes := tuf.StrToTuf("val", sf.Get())
- txtRes += tuf.BoolToTuf("isFill", sf.isFill)
- txtRes = tuf.RecToTuf("ETime", txtRes)
- return txtRes
- }
- // FromTuf -- десериализует из defs.ATxt в строки.
- func (sf *ETime) FromTuf(txtMsg defs.ATxt) defs.IOption[defs.IErr] {
- resRec := tuf.RecFromTuf("ETime", txtMsg) // Получить текст записи
- if resRec.IsErr() {
- err := defs.Err("ETime.FromTuf(): in extract record from TUF, err=\n\t%v", resRec.Error())
- return defs.NewSome(err)
- }
- return defs.NewNone[defs.IErr]()
- }
|