safing-portbase/database/record/record.go
2019-03-08 23:16:36 +01:00

29 lines
600 B
Go

package record
import (
"github.com/Safing/portbase/database/accessor"
)
// Record provides an interface for uniformally handling database records.
type Record interface {
Key() string // test:config
KeyIsSet() bool
DatabaseName() string // test
DatabaseKey() string // config
SetKey(key string) // test:config
MoveTo(key string) // test:config
Meta() *Meta
SetMeta(meta *Meta)
CreateMeta()
UpdateMeta()
Marshal(self Record, format uint8) ([]byte, error)
MarshalRecord(self Record) ([]byte, error)
GetAccessor(self Record) accessor.Accessor
Lock()
Unlock()
IsWrapped() bool
}