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  }