|
@@ -1,24 +1,23 @@
|
|
|
package etime
|
|
package etime
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
- "encoding/json"
|
|
|
|
|
- "fmt"
|
|
|
|
|
"time"
|
|
"time"
|
|
|
|
|
|
|
|
- mKs "gitp78su.ipnodns.ru/svi/kern/v4/lev0/core_spec"
|
|
|
|
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/lev0/core_spec"
|
|
|
"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
|
|
"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
|
|
|
"gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
|
|
"gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
|
|
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/lev0/tuf"
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
// ETime -- метка времени.
|
|
// ETime -- метка времени.
|
|
|
// Вывод: "2006-01-02 15:04:05.000 -07 MST".
|
|
// Вывод: "2006-01-02 15:04:05.000 -07 MST".
|
|
|
type ETime struct {
|
|
type ETime struct {
|
|
|
- defs.ITimeFix
|
|
|
|
|
- isFill bool // Признак заполнения
|
|
|
|
|
|
|
+ core_spec.ITimeFix
|
|
|
|
|
+ isFill defs.Bool // Признак заполнения
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// NewETime -- создает новый экземпляр ETime.
|
|
// NewETime -- создает новый экземпляр ETime.
|
|
|
-func NewETime(val defs.ITimeFix) mKs.ITime {
|
|
|
|
|
|
|
+func NewETime(val core_spec.ITimeFix) core_spec.ITime {
|
|
|
helpers.If(val.Get() == "").Hassert("NewETime(): val is empty")
|
|
helpers.If(val.Get() == "").Hassert("NewETime(): val is empty")
|
|
|
sf := &ETime{
|
|
sf := &ETime{
|
|
|
ITimeFix: val,
|
|
ITimeFix: val,
|
|
@@ -28,17 +27,17 @@ func NewETime(val defs.ITimeFix) mKs.ITime {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// NewETimeAuto -- создаёт фиксированную авто-метку времени.
|
|
// NewETimeAuto -- создаёт фиксированную авто-метку времени.
|
|
|
-func NewETimeAuto() mKs.ITime {
|
|
|
|
|
|
|
+func NewETimeAuto() core_spec.ITime {
|
|
|
sf := &ETime{
|
|
sf := &ETime{
|
|
|
isFill: true,
|
|
isFill: true,
|
|
|
}
|
|
}
|
|
|
val := defs.TxtFix(time.Now().Local().Format("2006-01-02 15:04:05.000 -07 MST"))
|
|
val := defs.TxtFix(time.Now().Local().Format("2006-01-02 15:04:05.000 -07 MST"))
|
|
|
- sf.Set(defs.ITimeFix(val))
|
|
|
|
|
|
|
+ sf.Set(core_spec.ITimeFix(val))
|
|
|
return sf
|
|
return sf
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// NewETimeAutoMut -- создаёт изменяемую авто-метку времени.
|
|
// NewETimeAutoMut -- создаёт изменяемую авто-метку времени.
|
|
|
-func NewETimeAutoMut() mKs.ITimeMut {
|
|
|
|
|
|
|
+func NewETimeAutoMut() core_spec.ITimeMut {
|
|
|
sf := &ETime{
|
|
sf := &ETime{
|
|
|
isFill: true,
|
|
isFill: true,
|
|
|
}
|
|
}
|
|
@@ -54,31 +53,31 @@ func (sf *ETime) String() string {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Time -- возвращает типизированную строку.
|
|
// Time -- возвращает типизированную строку.
|
|
|
-func (sf *ETime) Time() defs.ITimeFix {
|
|
|
|
|
|
|
+func (sf *ETime) Time() core_spec.ITimeFix {
|
|
|
helpers.If(sf.Get() == "").Hassert("ETime.Time(): значение не инициализировано")
|
|
helpers.If(sf.Get() == "").Hassert("ETime.Time(): значение не инициализировано")
|
|
|
return sf.ITimeFix
|
|
return sf.ITimeFix
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Set -- устанавливает типизированное значение.
|
|
// Set -- устанавливает типизированное значение.
|
|
|
-func (sf *ETime) Set(val defs.ITimeFix) {
|
|
|
|
|
|
|
+func (sf *ETime) Set(val core_spec.ITimeFix) {
|
|
|
helpers.If(val.Get() == "").Hassert("ETime.Set(): val is empty")
|
|
helpers.If(val.Get() == "").Hassert("ETime.Set(): val is empty")
|
|
|
sf.ITimeFix = val
|
|
sf.ITimeFix = val
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// MarshalJSON -- сериализует себя в строку.
|
|
|
|
|
-func (sf *ETime) MarshalJSON() ([]byte, error) {
|
|
|
|
|
- binMsg, err := json.Marshal(sf)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- err = fmt.Errorf("ETime.MarshalJSON(): in self marshall, err=\n\t%w", err)
|
|
|
|
|
- return nil, err
|
|
|
|
|
- }
|
|
|
|
|
- return binMsg, err
|
|
|
|
|
|
|
+// 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
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// UnmarshalJSON -- десериализует из строки.
|
|
|
|
|
-func (sf *ETime) UnmarshalJSON(binMsg []byte) error {
|
|
|
|
|
- if err := json.Unmarshal(binMsg, sf); err != nil {
|
|
|
|
|
- return fmt.Errorf("ETime.UnmarshalJSON(): in self unmarshall, err=\n\t%w", err)
|
|
|
|
|
|
|
+// 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 nil
|
|
|
|
|
|
|
+ return defs.NewNone[defs.IErr]()
|
|
|
}
|
|
}
|