32 lines
626 B
Go
32 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
|
|
}
|