package opts import ( "fmt" "github.com/docker/docker/pkg/ulimit" ) type UlimitOpt struct { values *map[string]*ulimit.Ulimit } func NewUlimitOpt(ref *map[string]*ulimit.Ulimit) *UlimitOpt { if ref == nil { ref = &map[string]*ulimit.Ulimit{} } return &UlimitOpt{ref} } func (o *UlimitOpt) Set(val string) error { l, err := ulimit.Parse(val) if err != nil { return err } (*o.values)[l.Name] = l return nil } func (o *UlimitOpt) String() string { var out []string for _, v := range *o.values { out = append(out, v.String()) } return fmt.Sprintf("%v", out) } func (o *UlimitOpt) GetList() []*ulimit.Ulimit { var ulimits []*ulimit.Ulimit for _, v := range *o.values { ulimits = append(ulimits, v) } return ulimits }