@@ -8,36 +8,84 @@ import (
88)
99
1010func NewFlesh (thing interface {}) Flesh {
11- return & figFlesh {Flesh : thing }
11+ f := figFlesh {Flesh : thing }
12+ return & f
1213}
1314
1415func (flesh * figFlesh ) ToString () string {
15- f , _ := toString (flesh .Flesh )
16+ f , e := toString (flesh .Flesh )
17+ if e != nil {
18+ isFlesh , ok := flesh .Flesh .(* figFlesh )
19+ if ok {
20+ f , e = toString (isFlesh .Flesh )
21+ if e != nil {
22+ return ""
23+ }
24+ }
25+ }
1626 return f
1727}
1828
1929func (flesh * figFlesh ) ToInt () int {
20- f , _ := toInt (flesh .Flesh )
30+ f , e := toInt (flesh .Flesh )
31+ if e != nil {
32+ isFlesh , ok := flesh .Flesh .(* figFlesh )
33+ if ok {
34+ f , e = toInt (isFlesh .Flesh )
35+ if e != nil {
36+ return 0
37+ }
38+ }
39+ }
2140 return f
2241}
2342
2443func (flesh * figFlesh ) ToInt64 () int64 {
25- f , _ := toInt64 (flesh .Flesh )
44+ f , e := toInt64 (flesh .Flesh )
45+ if e != nil {
46+ isFlesh , ok := flesh .Flesh .(* figFlesh )
47+ if ok {
48+ f , e = toInt64 (isFlesh .Flesh )
49+ if e != nil {
50+ return 0
51+ }
52+ }
53+ }
2654 return f
2755}
2856
2957func (flesh * figFlesh ) ToBool () bool {
30- f , _ := toBool (flesh .Flesh )
58+ f , e := toBool (flesh .Flesh )
59+ if e != nil {
60+ isFlesh , ok := flesh .Flesh .(* figFlesh )
61+ if ok {
62+ f , e = toBool (isFlesh .Flesh )
63+ if e != nil {
64+ return false
65+ }
66+ }
67+ }
3168 return f
3269}
3370
3471func (flesh * figFlesh ) ToFloat64 () float64 {
35- f , _ := toFloat64 (flesh .Flesh )
72+ f , e := toFloat64 (flesh .Flesh )
73+ if e != nil {
74+ isFlesh , ok := flesh .Flesh .(* figFlesh )
75+ if ok {
76+ f , e = toFloat64 (isFlesh .Flesh )
77+ if e != nil {
78+ return 0.0
79+ }
80+ }
81+ }
3682 return f
3783}
3884
3985func (flesh * figFlesh ) ToDuration () time.Duration {
4086 switch f := flesh .Flesh .(type ) {
87+ case * figFlesh :
88+ return f .ToDuration ()
4189 case time.Duration :
4290 return f
4391 case * time.Duration :
@@ -77,6 +125,8 @@ func (flesh *figFlesh) ToUnitDuration() time.Duration {
77125
78126func (flesh * figFlesh ) ToList () []string {
79127 switch f := flesh .Flesh .(type ) {
128+ case * figFlesh :
129+ return f .ToList ()
80130 case * ListFlag :
81131 return f .Values ()
82132 case []string :
@@ -105,6 +155,8 @@ func (flesh *figFlesh) ToMap() map[string]string {
105155 return f
106156 }
107157 switch ft := flesh .Flesh .(type ) {
158+ case * figFlesh :
159+ return ft .ToMap ()
108160 case * MapFlag :
109161 // Create a new map and copy the key-value pairs
110162 fu := make (map [string ]string , len (* ft .values ))
@@ -152,6 +204,8 @@ func (flesh *figFlesh) Is(mutagenesis Mutagenesis) bool {
152204
153205func (flesh * figFlesh ) IsString () bool {
154206 switch f := flesh .Flesh .(type ) {
207+ case * figFlesh :
208+ return f .IsString ()
155209 case string :
156210 return true
157211 case * string :
@@ -163,6 +217,8 @@ func (flesh *figFlesh) IsString() bool {
163217
164218func (flesh * figFlesh ) IsInt () bool {
165219 switch f := flesh .Flesh .(type ) {
220+ case * figFlesh :
221+ return f .IsInt ()
166222 case int :
167223 return true
168224 case * int :
@@ -174,6 +230,8 @@ func (flesh *figFlesh) IsInt() bool {
174230
175231func (flesh * figFlesh ) IsInt64 () bool {
176232 switch f := flesh .Flesh .(type ) {
233+ case * figFlesh :
234+ return f .IsInt64 ()
177235 case int64 :
178236 return true
179237 case * int64 :
@@ -185,6 +243,8 @@ func (flesh *figFlesh) IsInt64() bool {
185243
186244func (flesh * figFlesh ) IsBool () bool {
187245 switch f := flesh .Flesh .(type ) {
246+ case * figFlesh :
247+ return f .IsBool ()
188248 case bool :
189249 return true
190250 case * bool :
@@ -197,6 +257,8 @@ func (flesh *figFlesh) IsBool() bool {
197257
198258func (flesh * figFlesh ) IsFloat64 () bool {
199259 switch f := flesh .Flesh .(type ) {
260+ case * figFlesh :
261+ return f .IsFloat64 ()
200262 case float64 :
201263 return true
202264 case * float64 :
@@ -208,6 +270,8 @@ func (flesh *figFlesh) IsFloat64() bool {
208270
209271func (flesh * figFlesh ) IsDuration () bool {
210272 switch f := flesh .Flesh .(type ) {
273+ case * figFlesh :
274+ return f .IsDuration ()
211275 case time.Duration :
212276 return true
213277 case * time.Duration :
@@ -220,6 +284,8 @@ func (flesh *figFlesh) IsDuration() bool {
220284
221285func (flesh * figFlesh ) IsUnitDuration () bool {
222286 switch f := flesh .Flesh .(type ) {
287+ case * figFlesh :
288+ return f .IsUnitDuration ()
223289 case time.Duration :
224290 return true
225291 case * time.Duration :
@@ -232,6 +298,8 @@ func (flesh *figFlesh) IsUnitDuration() bool {
232298
233299func (flesh * figFlesh ) IsList () bool {
234300 switch f := flesh .Flesh .(type ) {
301+ case * figFlesh :
302+ return f .IsList ()
235303 case * ListFlag :
236304 return true
237305 case ListFlag :
@@ -278,6 +346,8 @@ func (flesh *figFlesh) IsMap() bool {
278346 return ok
279347 }
280348 switch f := flesh .Flesh .(type ) {
349+ case * figFlesh :
350+ return f .IsMap ()
281351 case * MapFlag :
282352 return true
283353 case MapFlag :
0 commit comments