github.com/traefik/yaegi@v0.15.1/interp/typestring.go (about) 1 package interp 2 3 import "strings" 4 5 func paramsTypeString(params []*itype) string { 6 strs := make([]string, 0, len(params)) 7 for _, param := range params { 8 strs = append(strs, param.str) 9 } 10 return strings.Join(strs, ",") 11 } 12 13 func methodsTypeString(fields []structField) string { 14 strs := make([]string, 0, len(fields)) 15 for _, field := range fields { 16 if field.embed { 17 str := methodsTypeString(field.typ.field) 18 if str != "" { 19 strs = append(strs, str) 20 } 21 continue 22 } 23 strs = append(strs, field.name+field.typ.str[4:]) 24 } 25 return strings.Join(strs, "; ") 26 } 27 28 func fieldsTypeString(fields []structField) string { 29 strs := make([]string, 0, len(fields)) 30 for _, field := range fields { 31 var repr strings.Builder 32 if !field.embed { 33 repr.WriteString(field.name) 34 repr.WriteByte(' ') 35 } 36 repr.WriteString(field.typ.str) 37 strs = append(strs, repr.String()) 38 } 39 return strings.Join(strs, "; ") 40 }