ducky/devices

Paddy 2015-11-15 Parent:b6494e1a499e Child:c24a6c5fcd8c

7:1e2743834209 Go to Latest

ducky/devices/context.go

Add ToMap and ToSlice helpers. Add helper functions that convert a map of ID-keyed Devices into a slice, and back. We'll use these a lot (especially with GetMany) as shorthand helper functions.

History
1 package devices
3 import (
4 "errors"
6 "golang.org/x/net/context"
7 )
9 const (
10 storerKey = "code.secondbit.org/ducky/devices.hg#Storer"
11 )
13 var (
14 // ErrNoStorerSet is returned when the Context has no Storer set in it.
15 ErrNoStorerSet = errors.New("storerKey not set in Context")
16 // ErrStorerKeyNotStorer is returned when there's a value in the Context for storerKey, but it's not a Storer.
17 ErrStorerKeyNotStorer = errors.New("the value for storerKey does not fulfill the Storer interface")
18 )
20 func getStorer(c context.Context) (Storer, error) {
21 val := c.Value(storerKey)
22 if val == nil {
23 return nil, ErrNoStorerSet
24 }
25 storer, ok := val.(Storer)
26 if !ok {
27 return nil, ErrStorerKeyNotStorer
28 }
29 return storer, nil
30 }