From bf8aaa2ca0e4d6e15804a7e9878f5c4efe51ac29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paulo=20Sima=CC=83o?= Date: Mon, 11 Oct 2021 11:53:57 -0300 Subject: [PATCH] separated httpcli from replaycli. Added config methods --- types/lib.go | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/types/lib.go b/types/lib.go index c67e58b..0e1d98a 100644 --- a/types/lib.go +++ b/types/lib.go @@ -1,6 +1,8 @@ package types import ( + "encoding/json" + "strconv" "time" ) @@ -140,6 +142,55 @@ type Config struct { Repo uint `json:"repo"` } +func (c *Config) AsInt64() int64 { + i, err := strconv.ParseInt(c.V, 10, 64) + if err != nil { + return 0 + } + return i +} +func (c *Config) AsInt32() int32 { + i, err := strconv.ParseInt(c.V, 10, 32) + if err != nil { + return 0 + } + return int32(i) +} +func (c *Config) AsUint() uint { + i, err := strconv.ParseInt(c.V, 10, 32) + if err != nil { + return 0 + } + return uint(i) +} +func (c *Config) AsInt() int { + i, err := strconv.ParseInt(c.V, 10, 16) + if err != nil { + return 0 + } + return int(i) +} +func (c *Config) AsFloat64() float64 { + i, err := strconv.ParseFloat(c.V, 64) + if err != nil { + return 0 + } + return i +} +func (c *Config) AsFloat32() float32 { + i, err := strconv.ParseFloat(c.V, 32) + if err != nil { + return 0 + } + return float32(i) +} +func (c *Config) AsBool() bool { + return c.V == "true" || c.V == "1" || c.V == "t" +} +func (c *Config) AsJson(i interface{}) error { + return json.Unmarshal([]byte(c.V), i) +} + type Credentials struct { Model Name string `json:"name"`