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  }