github.com/Cloud-Foundations/Dominator@v0.3.4/lib/flagutil/sizeList.go (about) 1 package flagutil 2 3 import ( 4 "bytes" 5 "strings" 6 ) 7 8 func (sl *SizeList) String() string { 9 buffer := &bytes.Buffer{} 10 buffer.WriteString(`"`) 11 for index, size := range *sl { 12 buffer.WriteString(size.String()) 13 if index < len(*sl)-1 { 14 buffer.WriteString(",") 15 } 16 } 17 buffer.WriteString(`"`) 18 return buffer.String() 19 } 20 21 func (sl *SizeList) Set(value string) error { 22 newList := make(SizeList, 0) 23 if value != "" { 24 sizeStrings := strings.Split(value, ",") 25 for _, sizeString := range sizeStrings { 26 var size Size 27 if err := size.Set(sizeString); err != nil { 28 return err 29 } 30 newList = append(newList, size) 31 } 32 } 33 *sl = newList 34 return nil 35 }