package pipeline // Pipeline defines pipeline options. type Pipeline map[string]interface{} const ( priority string = "priority" driver string = "driver" name string = "name" ) // With pipeline value func (p *Pipeline) With(name string, value interface{}) { (*p)[name] = value } // Name returns pipeline name. func (p Pipeline) Name() string { return p.String(name, "") } // Driver associated with the pipeline. func (p Pipeline) Driver() string { return p.String(driver, "") } // Has checks if value presented in pipeline. func (p Pipeline) Has(name string) bool { if _, ok := p[name]; ok { return true } return false } // String must return option value as string or return default value. func (p Pipeline) String(name string, d string) string { if value, ok := p[name]; ok { if str, ok := value.(string); ok { return str } } return d } // Priority returns default pipeline priority func (p Pipeline) Priority() uint64 { if value, ok := p[priority]; ok { if v, ok := value.(uint64); ok { return v } } return 10 }