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