package backend import ( "errors" "fmt" ) // Handle is used to store and access data in a backend. type Handle struct { Type Type Name string } func (h Handle) String() string { name := h.Name if len(name) > 10 { name = name[:10] } return fmt.Sprintf("<%s/%s>", h.Type, name) } // Valid returns an error if h is not valid. func (h Handle) Valid() error { if h.Type == "" { return errors.New("type is empty") } switch h.Type { case Data: case Key: case Lock: case Snapshot: case Index: case Config: default: return fmt.Errorf("invalid Type %q", h.Type) } if h.Type == Config { return nil } if h.Name == "" { return errors.New("invalid Name") } return nil }