github.com/Cloud-Foundations/Dominator@v0.3.4/cmd/vm-control/types.go (about) 1 package main 2 3 import ( 4 "bytes" 5 "strings" 6 7 hyper_proto "github.com/Cloud-Foundations/Dominator/proto/hypervisor" 8 ) 9 10 type volumeTypeList []hyper_proto.VolumeType 11 12 func (vtl *volumeTypeList) String() string { 13 buffer := &bytes.Buffer{} 14 buffer.WriteString(`"`) 15 for index, vtype := range *vtl { 16 buffer.WriteString(vtype.String()) 17 if index < len(*vtl)-1 { 18 buffer.WriteString(",") 19 } 20 } 21 buffer.WriteString(`"`) 22 return buffer.String() 23 } 24 25 func (vtl *volumeTypeList) Set(value string) error { 26 newList := make(volumeTypeList, 0) 27 if value != "" { 28 vtypeStrings := strings.Split(value, ",") 29 for _, vtypeString := range vtypeStrings { 30 var vtype hyper_proto.VolumeType 31 if err := vtype.Set(vtypeString); err != nil { 32 return err 33 } 34 newList = append(newList, vtype) 35 } 36 } 37 *vtl = newList 38 return nil 39 }