pkg fs, func NewMemstore(string) (*Memstore, error)
pkg fs, method (*Memstore) Abort(interface{}) error
pkg fs, method (*Memstore) BindObject(string) *boundObject
pkg fs, method (*Memstore) BindTransaction(string) Transaction
pkg fs, method (*Memstore) BindTransactionRoot(string) Transaction
pkg fs, method (*Memstore) Commit(interface{}) error
pkg fs, method (*Memstore) CreateTransaction(interface{}) (string, error)
pkg fs, method (*Memstore) Lock()
pkg fs, method (*Memstore) Unlock()
pkg fs, type Memstore struct
pkg fs, type Memstore struct, embedded sync.Mutex
pkg fs, type MemstoreObject interface { Exists, Remove }
pkg fs, type MemstoreObject interface, Exists(interface{}) (bool, error)
pkg fs, type MemstoreObject interface, Remove(interface{}) error
pkg fs, type Transaction interface { Commit, CreateTransaction }
pkg fs, type Transaction interface, Commit(interface{}) error
pkg fs, type Transaction interface, CreateTransaction(interface{}) (string, error)
pkg fs, var ErrAbortWithoutTransaction verror.IDAction
pkg fs, var ErrChildrenWithoutLock verror.IDAction
pkg fs, var ErrDoubleCommit verror.IDAction
pkg fs, var ErrNoRecursiveCreateTransaction verror.IDAction
pkg fs, var ErrNotInMemStore verror.IDAction
pkg fs, var ErrUnsupportedType verror.IDAction
pkg fs, var ErrWithoutTransaction verror.IDAction
