Convert error slice to string slice

* feat: added test case for error slice to parse to string

* feat: added handler to convert an error slice to string slice
This commit is contained in:
Paco Preciado Mendoza 2020-07-23 16:45:38 -05:00 committed by GitHub
parent 580a25aa7d
commit 8d17101741
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 0 deletions

View File

@ -6,6 +6,7 @@
package cast package cast
import ( import (
"errors"
"fmt" "fmt"
"html/template" "html/template"
"testing" "testing"
@ -1057,6 +1058,7 @@ func TestToStringSliceE(t *testing.T) {
{[]string{"a", "b"}, []string{"a", "b"}, false}, {[]string{"a", "b"}, []string{"a", "b"}, false},
{[]interface{}{1, 3}, []string{"1", "3"}, false}, {[]interface{}{1, 3}, []string{"1", "3"}, false},
{interface{}(1), []string{"1"}, false}, {interface{}(1), []string{"1"}, false},
{[]error{errors.New("a"), errors.New("b")}, []string{"a", "b"}, false},
// errors // errors
{nil, nil, true}, {nil, nil, true},
{testing.T{}, nil, true}, {testing.T{}, nil, true},

View File

@ -1161,6 +1161,11 @@ func ToStringSliceE(i interface{}) ([]string, error) {
return a, nil return a, nil
case string: case string:
return strings.Fields(v), nil return strings.Fields(v), nil
case []error:
for _, err := range i.([]error) {
a = append(a, err.Error())
}
return a, nil
case interface{}: case interface{}:
str, err := ToStringE(v) str, err := ToStringE(v)
if err != nil { if err != nil {