diff options
author | NeonXP <i@neonxp.dev> | 2022-11-21 04:46:32 +0300 |
---|---|---|
committer | NeonXP <i@neonxp.dev> | 2022-11-21 04:46:32 +0300 |
commit | 0d431048d3e68609b90306efd9ed015143ae651f (patch) | |
tree | 2a5fe21654bb9af02a0419722f2cd80d588465a2 /model/numberNode.go | |
parent | 4054a50ce4232ebfc4dae043863ad96d46b25b43 (diff) |
added set method
Diffstat (limited to 'model/numberNode.go')
-rw-r--r-- | model/numberNode.go | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/model/numberNode.go b/model/numberNode.go index e1bffd9..b61b63c 100644 --- a/model/numberNode.go +++ b/model/numberNode.go @@ -1,6 +1,9 @@ package model -import "strconv" +import ( + "fmt" + "strconv" +) type NumberNode struct { Value float64 @@ -13,3 +16,13 @@ func (n NumberNode) Type() NodeType { func (n *NumberNode) MarshalJSON() ([]byte, error) { return []byte(strconv.FormatFloat(n.Value, 'g', -1, 64)), nil } + +func (n *NumberNode) Set(v any) error { + switch v := v.(type) { + case float64: + n.Value = v + case int: + n.Value = float64(v) + } + return fmt.Errorf("%v is not number", v) +} |