package etime import ( "time" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/alias" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers" mKt "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes" ) // ETime -- метка времени. // Вывод: "2006-01-02 15:04:05.000 -07 MST". type ETime struct { val alias.ATime isMut bool // Мутабельность isFill bool // Признак заполнения } // NewETime -- создает новый экземпляр ETime. func NewETime(val alias.ATime) mKt.ITime { helpers.Hassert(val != "", "NewETime(): val is empty") sf := &ETime{ val: val, isFill: true, } return sf } // NewETimeAuto -- создаёт фиксированную авто-метку времени. func NewETimeAuto() mKt.ITime { sf := &ETime{ isFill: true, } val := time.Now().Local().Format("2006-01-02 15:04:05.000 -07 MST") sf.Set(alias.ATime(val)) return sf } // NewETimeAutoMut -- создаёт изменяемую авто-метку времени. func NewETimeAutoMut() mKt.ITimeMut { sf := &ETime{ isFill: true, isMut: true, } val := time.Now().Local().Format("2006-01-02 15:04:05.000 -07 MST") sf.Set(alias.ATime(val)) return sf } // String -- возвращает строку. func (sf *ETime) String() string { helpers.Hassert(sf.val != "", "ETime.String(): значение не инициализировано") return string(sf.val) } // Get -- возвращает строку. func (sf *ETime) Get() alias.ATime { helpers.Hassert(sf.val != "", "ETime.Get(): значение не инициализировано") return sf.val } // Set -- устанавливает значение. func (sf *ETime) Set(val alias.ATime) { helpers.Hassert(sf.isMut, "ETime.Set(): значение фиксировано") helpers.Hassert(val != "", "ETime.Set(): val is empty") sf.val = val }