mirror of
				https://github.com/moby/moby.git
				synced 2022-11-09 12:21:53 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
	
		
			981 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
	
		
			981 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package opts
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
 | 
						|
	"github.com/docker/go-units"
 | 
						|
)
 | 
						|
 | 
						|
// UlimitOpt defines a map of Ulimits
 | 
						|
type UlimitOpt struct {
 | 
						|
	values *map[string]*units.Ulimit
 | 
						|
}
 | 
						|
 | 
						|
// NewUlimitOpt creates a new UlimitOpt
 | 
						|
func NewUlimitOpt(ref *map[string]*units.Ulimit) *UlimitOpt {
 | 
						|
	if ref == nil {
 | 
						|
		ref = &map[string]*units.Ulimit{}
 | 
						|
	}
 | 
						|
	return &UlimitOpt{ref}
 | 
						|
}
 | 
						|
 | 
						|
// Set validates a Ulimit and sets its name as a key in UlimitOpt
 | 
						|
func (o *UlimitOpt) Set(val string) error {
 | 
						|
	l, err := units.ParseUlimit(val)
 | 
						|
	if err != nil {
 | 
						|
		return err
 | 
						|
	}
 | 
						|
 | 
						|
	(*o.values)[l.Name] = l
 | 
						|
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
// String returns Ulimit values as a string.
 | 
						|
func (o *UlimitOpt) String() string {
 | 
						|
	var out []string
 | 
						|
	for _, v := range *o.values {
 | 
						|
		out = append(out, v.String())
 | 
						|
	}
 | 
						|
 | 
						|
	return fmt.Sprintf("%v", out)
 | 
						|
}
 | 
						|
 | 
						|
// GetList returns a slice of pointers to Ulimits.
 | 
						|
func (o *UlimitOpt) GetList() []*units.Ulimit {
 | 
						|
	var ulimits []*units.Ulimit
 | 
						|
	for _, v := range *o.values {
 | 
						|
		ulimits = append(ulimits, v)
 | 
						|
	}
 | 
						|
 | 
						|
	return ulimits
 | 
						|
}
 |