33 lines
626 B
Go
33 lines
626 B
Go
|
package option
|
||
|
|
||
|
// Interface defines the minimum interface that an option must fulfill
|
||
|
type Interface interface {
|
||
|
// Ident returns the "indentity" of this option, a unique identifier that
|
||
|
// can be used to differentiate between options
|
||
|
Ident() interface{}
|
||
|
|
||
|
// Value returns the corresponding value.
|
||
|
Value() interface{}
|
||
|
}
|
||
|
|
||
|
type pair struct {
|
||
|
ident interface{}
|
||
|
value interface{}
|
||
|
}
|
||
|
|
||
|
// New creates a new Option
|
||
|
func New(ident, value interface{}) Interface {
|
||
|
return &pair{
|
||
|
ident: ident,
|
||
|
value: value,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (p *pair) Ident() interface{} {
|
||
|
return p.ident
|
||
|
}
|
||
|
|
||
|
func (p *pair) Value() interface{} {
|
||
|
return p.value
|
||
|
}
|