Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrNotFound = errors.New("not found") ErrNoKey = errors.New("no key") ErrReadOnly = errors.New("readonly access") ErrInvalidBindConfig = errors.New("invalid bind config") ErrMethodIsNotSupported = errors.New("method is not supported") )
View Source
var ( ErrStructureOfTheRecordCannotBeReorganized = errors.New("structure of the record cannot be reorganized. All fields with the same prefix must be represented as a key with separator `.` in the key name and have the same size") ErrUnsupportedDatatype = errors.New("unsupported data type") ErrUnsupportedDatetypeConversion = errors.New("unsupported data type conversion") )
Functions ¶
This section is empty.
Types ¶
type BindConfig ¶
type BindConfig struct { Pattern string `json:"pattern" xml:"pattern" yaml:"pattern" toml:"pattern"` DBNum int `json:"dbnum" xml:"dbnum" yaml:"dbnum" toml:"dbnum"` TableName string `json:"table_name" xml:"table_name" yaml:"table_name" toml:"table_name"` Readonly bool `json:"readonly" xml:"readonly" yaml:"readonly" toml:"readonly"` WhereExt string `json:"where_ext" xml:"where_ext" yaml:"where_ext" toml:"where_ext"` GetQuery string `json:"get_query" xml:"get_query" yaml:"get_query" toml:"get_query"` ListQuery string `json:"list_query" xml:"list_query" yaml:"list_query" toml:"list_query"` UpsertQuery string `json:"upsert_query" xml:"upsert_query" yaml:"upsert_query" toml:"upsert_query"` DelQuery string `json:"del_query" xml:"del_query" yaml:"del_query" toml:"del_query"` ReorganizeNested bool `json:"reorganize_nested" xml:"reorganize_nested" yaml:"reorganize_nested" toml:"reorganize_nested"` DatatypeMapping []DatatypeMapper `json:"datatype_mapping" xml:"datatype_mapping" yaml:"datatype_mapping" toml:"datatype_mapping"` }
type CacheSupporter ¶
type CacheSupporter interface {
SupportCache() bool
}
CacheSupporter extension
type Cacher ¶
type Cacher interface { io.Closer WithPrefix(prefix string) Cacher Get(ctx context.Context, key string) ([]byte, error) Set(ctx context.Context, key string, value []byte) error Del(ctx context.Context, key string) error }
Cacher manage interface
type DatatypeMapper ¶ added in v0.6.0
type Driver ¶
type Driver interface { io.Closer Get(ctx context.Context, dbnum int, key string) ([]byte, error) Set(ctx context.Context, dbnum int, key string, value []byte) error Del(ctx context.Context, dbnum int, key string) error Keys(ctx context.Context, dbnum int, pattern string) ([]string, error) Bind(ctx context.Context, conf *BindConfig) error }
Driver storage description
type Record ¶
Record is a map of key-value pairs
func (Record) DatetypeCasting ¶ added in v0.6.0
func (r Record) DatetypeCasting(mappers ...DatatypeMapper) (_ Record, err error)
DatetypeCasting convert values to the specified types
func (Record) ReorganizeNested ¶ added in v0.5.0
ReorganizeNested record according to the key pattern If some fields represented as a key with separator `.` in the key name it need to combine with the other fields with the same prefix Example:
{ "staff.name": ["George", "John", "Brith"], "staff.age": ["20", "21", "22"], "staff.gender": ["man", "man", "woman"], }
After reorganize:
{ "staff": [ { "name": "George", "age": "20", "gender": "man", }, { "name": "John", "age": "21", "gender": "man", }, { "name": "Brith", "age": "22", "gender": "woman", }, ], }
Click to show internal directories.
Click to hide internal directories.