|
@@ -1,6 +1,8 @@
|
|
|
package etime
|
|
package etime
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
|
+ "encoding/json"
|
|
|
|
|
+ "fmt"
|
|
|
"time"
|
|
"time"
|
|
|
|
|
|
|
|
"gitp78su.ipnodns.ru/svi/kern/v4/lev0/alias"
|
|
"gitp78su.ipnodns.ru/svi/kern/v4/lev0/alias"
|
|
@@ -53,15 +55,33 @@ func (sf *ETime) String() string {
|
|
|
return string(sf.val)
|
|
return string(sf.val)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// Get -- возвращает строку.
|
|
|
|
|
|
|
+// Get -- возвращает типизированную строку.
|
|
|
func (sf *ETime) Get() alias.ATime {
|
|
func (sf *ETime) Get() alias.ATime {
|
|
|
helpers.Hassert(sf.val != "", "ETime.Get(): значение не инициализировано")
|
|
helpers.Hassert(sf.val != "", "ETime.Get(): значение не инициализировано")
|
|
|
return sf.val
|
|
return sf.val
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// Set -- устанавливает значение.
|
|
|
|
|
|
|
+// Set -- устанавливает типизированное значение.
|
|
|
func (sf *ETime) Set(val alias.ATime) {
|
|
func (sf *ETime) Set(val alias.ATime) {
|
|
|
helpers.Hassert(sf.isMut, "ETime.Set(): значение фиксировано")
|
|
helpers.Hassert(sf.isMut, "ETime.Set(): значение фиксировано")
|
|
|
helpers.Hassert(val != "", "ETime.Set(): val is empty")
|
|
helpers.Hassert(val != "", "ETime.Set(): val is empty")
|
|
|
sf.val = val
|
|
sf.val = 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
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 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)
|
|
|
|
|
+ }
|
|
|
|
|
+ return nil
|
|
|
|
|
+}
|