Documentation ¶
Overview ¶
Package stow is used to persist objects to a bolt.DB database.
Index ¶
- Variables
- func Register(value interface{})
- func RegisterName(name string, value interface{})
- type Codec
- type Decoder
- type Encoder
- type GobCodec
- type JSONCodec
- type Store
- func (s *Store) Delete(key interface{}) error
- func (s *Store) DeleteAll() error
- func (s *Store) ForEach(do interface{}) error
- func (s *Store) Get(key interface{}, b interface{}) error
- func (s *Store) NewCustomNestedStore(bucket []byte, codec Codec) *Store
- func (s *Store) NewNestedStore(bucket []byte) *Store
- func (s *Store) Pull(key interface{}, b interface{}) error
- func (s *Store) Put(key interface{}, b interface{}) error
- type XMLCodec
Constants ¶
This section is empty.
Variables ¶
var ErrNotFound = errors.New("not found")
ErrNotFound indicates object is not in database.
Functions ¶
func Register ¶
func Register(value interface{})
Register registers the type using gob.Register for use with NewStore() and the GobCodec.
func RegisterName ¶
func RegisterName(name string, value interface{})
RegisterName registers the type using gob.RegisterName for use with NewStore() and the GobCodec.
Types ¶
type Decoder ¶
type Decoder interface {
Decode(interface{}) error
}
Decoder is used to decode objects
type Encoder ¶
type Encoder interface {
Encode(interface{}) error
}
Encoder is used to encode objects
type GobCodec ¶
type GobCodec struct{}
GobCodec is used to encode/decode using the Gob format.
func (GobCodec) NewDecoder ¶
NewDecoder returns a new gob decoder which reads from r
type JSONCodec ¶
type JSONCodec struct{}
JSONCodec is used to encode/decode JSON
func (JSONCodec) NewDecoder ¶
NewDecoder returns a new json decoder which reads from r
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store manages objects persistence.
func NewCustomStore ¶
NewCustomStore allows you to create a store with a custom underlying Encoding
func NewJSONStore ¶
NewJSONStore creates a new Store, using the underlying bolt.DB "bucket" to persist objects as json.
func NewStore ¶
NewStore creates a new Store, using the underlying bolt.DB "bucket" to persist objects. NewStore uses GobEncoding, your objects must be registered via gob.Register() for this encoding to work.
func NewXMLStore ¶
NewXMLStore creates a new Store, using the underlying bolt.DB "bucket" to persist objects as xml.
func (*Store) Delete ¶
Delete will remove the item with the specified key from the store. It returns nil if the item was not found (like BoltDB).
func (*Store) ForEach ¶
ForEach will run do on each object in the store. do can be a function which takes either: 1 param which will take on each "value" or 2 params where the first param is the "key" and the second is the "value".
func (*Store) Get ¶
Get will retrieve b with key "key". If key is []byte or string it uses the key directly. Otherwise, it marshals the given type into bytes using the stores Encoder.
func (*Store) NewCustomNestedStore ¶
NewCustomNestedStore works the same as NewNestedStore except you can override the Codec used by the returned Store.
func (*Store) NewNestedStore ¶
NewNestedStore returns a new Store which is nested inside the current store's bucket. It inherits the original store's Codec, and will be deleted by the parent store's DeleteAll method. Also note that buckets are in the parents key-space so you cannot have a NestedStore whose "bucket" is the same as a parent's key.
type XMLCodec ¶
type XMLCodec struct{}
XMLCodec is used to encode/decode XML
func (XMLCodec) NewDecoder ¶
NewDecoder returns a new xml decoder which reads from r