embd/descriptor.go

34 lines
662 B
Go
Raw Normal View History

2014-03-02 20:21:23 +01:00
package embd
import (
"errors"
"fmt"
)
type Descriptor struct {
GPIODriver func() GPIODriver
I2CDriver func() I2CDriver
LEDDriver func() LEDDriver
}
type Describer func(rev int) *Descriptor
var Describers = map[Host]Describer{}
2014-03-02 20:21:23 +01:00
func DescribeHost() (*Descriptor, error) {
host, rev, err := DetectHost()
if err != nil {
return nil, err
}
describer, ok := Describers[host]
if !ok {
2014-03-02 15:09:30 +01:00
return nil, fmt.Errorf("host: invalid host %q", host)
}
return describer(rev), nil
}
2014-03-23 02:11:51 +01:00
var ErrFeatureNotSupported = errors.New("embd: requested feature is not supported")
var ErrFeatureNotImplemented = errors.New("embd: requested feature is not implemented")