types: Add text (un)marshaler on FIL
This commit is contained in:
parent
78eaac6534
commit
03c1776b43
@ -1,6 +1,7 @@
|
||||
package types
|
||||
|
||||
import (
|
||||
"encoding"
|
||||
"fmt"
|
||||
"math/big"
|
||||
"strings"
|
||||
@ -27,6 +28,20 @@ func (f FIL) Format(s fmt.State, ch rune) {
|
||||
}
|
||||
}
|
||||
|
||||
func (f FIL) MarshalText() (text []byte, err error) {
|
||||
return []byte(f.String()), nil
|
||||
}
|
||||
|
||||
func (f FIL) UnmarshalText(text []byte) error {
|
||||
p, err := ParseFIL(string(text))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
f.Int.Set(p.Int)
|
||||
return nil
|
||||
}
|
||||
|
||||
func ParseFIL(s string) (FIL, error) {
|
||||
suffix := strings.TrimLeft(s, ".1234567890")
|
||||
s = s[:len(s)-len(suffix)]
|
||||
@ -61,3 +76,6 @@ func ParseFIL(s string) (FIL, error) {
|
||||
|
||||
return FIL{r.Num()}, nil
|
||||
}
|
||||
|
||||
var _ encoding.TextMarshaler = (*FIL)(nil)
|
||||
var _ encoding.TextUnmarshaler = (*FIL)(nil)
|
||||
|
Loading…
Reference in New Issue
Block a user