Created
February 20, 2019 05:30
-
-
Save vitiko/cf2ced2124df24fec227f22ddf59dc36 to your computer and use it in GitHub Desktop.
CCKit state interface
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type State interface { | |
// Get returns value from state, converted to target type | |
// entry can be Key (string or []string) or type implementing Keyer interface | |
Get(entry interface{}, target ...interface{}) (result interface{}, err error) | |
// Get returns value from state, converted to int | |
// entry can be Key (string or []string) or type implementing Keyer interface | |
GetInt(entry interface{}, defaultValue int) (result int, err error) | |
// GetHistory returns slice of history records for entry, with values converted to target type | |
// entry can be Key (string or []string) or type implementing Keyer interface | |
GetHistory(entry interface{}, target interface{}) (result HistoryEntryList, err error) | |
// Exists returns entry existence in state | |
// entry can be Key (string or []string) or type implementing Keyer interface | |
Exists(entry interface{}) (exists bool, err error) | |
// Put returns result of putting entry to state | |
// entry can be Key (string or []string) or type implementing Keyer interface | |
// if entry is implements Keyer interface and it's struct or type implementing | |
// ToByter interface value can be omitted | |
Put(entry interface{}, value ...interface{}) (err error) | |
// Insert returns result of inserting entry to state | |
// If same key exists in state error wil be returned | |
// entry can be Key (string or []string) or type implementing Keyer interface | |
// if entry is implements Keyer interface and it's struct or type implementing | |
// ToByter interface value can be omitted | |
Insert(entry interface{}, value ...interface{}) (err error) | |
// List returns slice of target type | |
// namespace can be part of key (string or []string) or entity with defined mapping | |
List(namespace interface{}, target ...interface{}) (result []interface{}, err error) | |
// Delete returns result of deleting entry from state | |
// entry can be Key (string or []string) or type implementing Keyer interface | |
Delete(entry interface{}) (err error) | |
... | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment