Documentation
¶
Index ¶
- Constants
- Variables
- func BytesToString(lst interface{}) (str string)
- func CommandBuilder(commandNameIn ReJSONCommandID, argsIn ...interface{}) (commandNameOut string, argsOut []interface{}, err error)
- func StringToBytes(lst interface{}) (by []byte)
- type CommandBuilderFunc
- type DebugSubCommand
- type GetOption
- type ReJSONCommandID
- type ReJSONOption
- type SetOption
Constants ¶
const ( // ClientInactive signifies that the client is inactive in Handler ClientInactive = "inactive" // PopArrLast gives index of the last element for JSONArrPop PopArrLast = -1 // DebugMemorySubcommand provide the corresponding MEMORY sub commands for JSONDebug DebugMemorySubcommand DebugSubCommand = "MEMORY" // DebugHelpSubcommand provide the corresponding HELP sub commands for JSONDebug DebugHelpSubcommand DebugSubCommand = "HELP" // DebugHelpOutput is the output of command JSON.Debug HELP <obj> [path] DebugHelpOutput = "MEMORY <key> [path] - reports memory usage\nHELP - this message" // ReJSON Commands ReJSONCommandSET ReJSONCommandID = 0 ReJSONCommandGET ReJSONCommandID = 1 ReJSONCommandDEL ReJSONCommandID = 2 ReJSONCommandMGET ReJSONCommandID = 3 ReJSONCommandTYPE ReJSONCommandID = 4 ReJSONCommandNUMINCRBY ReJSONCommandID = 5 ReJSONCommandNUMMULTBY ReJSONCommandID = 6 ReJSONCommandSTRAPPEND ReJSONCommandID = 7 ReJSONCommandSTRLEN ReJSONCommandID = 8 ReJSONCommandARRAPPEND ReJSONCommandID = 9 ReJSONCommandARRLEN ReJSONCommandID = 10 ReJSONCommandARRPOP ReJSONCommandID = 11 ReJSONCommandARRINDEX ReJSONCommandID = 12 ReJSONCommandARRTRIM ReJSONCommandID = 13 ReJSONCommandARRINSERT ReJSONCommandID = 14 ReJSONCommandOBJKEYS ReJSONCommandID = 15 ReJSONCommandOBJLEN ReJSONCommandID = 16 ReJSONCommandDEBUG ReJSONCommandID = 17 ReJSONCommandFORGET ReJSONCommandID = 18 ReJSONCommandRESP ReJSONCommandID = 19 // JSONSET command Options SetOptionNX SetOption = "NX" SetOptionXX SetOption = "XX" )
Variables ¶
var ( ErrInternal = fmt.Errorf("error: internal client error") ErrNoClientSet = fmt.Errorf("no redis client is set") ErrTooManyOptionals = fmt.Errorf("error: too many optional arguments") ErrNeedAtleastOneArg = fmt.Errorf("error: need atleast one argument in varing field") // GoRedis specific Nil error ErrGoRedisNil = fmt.Errorf("redis: nil") )
Generic and Constant Errors to be returned to client to maintain stability
var ( GETOptionSPACE = GetOption{"SPACE", " "} GETOptionINDENT = GetOption{"INDENT", "\t"} GETOptionNEWLINE = GetOption{"NEWLINE", "\n"} GETOptionNOESCAPE = GetOption{"NOESCAPE", ""} )
JSONGet Command Options
Functions ¶
func BytesToString ¶
func BytesToString(lst interface{}) (str string)
BytesToString converts each byte in a byte slice into character, else panic out
func CommandBuilder ¶
func CommandBuilder(commandNameIn ReJSONCommandID, argsIn ...interface{}) (commandNameOut string, argsOut []interface{}, err error)
CommandBuilder is used to build a command that can be used directly to build REJSON commands
This is especially useful if you do not need to client's `Do()` method and instead need to use the JSON.* commands in the MUTLI/EXEC scenario along with some other operations like
GET/SET/HGET/HSET/...
func StringToBytes ¶
func StringToBytes(lst interface{}) (by []byte)
StringToBytes converts each character of the string slice into byte, else panic out
Types ¶
type CommandBuilderFunc ¶
type CommandBuilderFunc func(argsIn ...interface{}) (argsOut []interface{}, err error)
CommandBuilderFunc uses for the simplicity of the corresponding ReJSON module command builders
type DebugSubCommand ¶
type DebugSubCommand string
DebugSubCommand provides the abstract sub-commands for the JSON.DEBUG command
type GetOption ¶
type GetOption struct { Arg string // contains filtered or unexported fields }
GetOption implements ReJSONOption for JSON.GET Method Get Options:
- INDENT (with default set to a tab, '\t')
- NEWLINE (with default set to a new line, '\n')
- SPACE (with default set to a space, ' ')
- NOESCAPE (a boolean type option)
func (GetOption) MethodID ¶
func (g GetOption) MethodID() ReJSONCommandID
MethodID returns the name of the method i.e. JSON.GET
type ReJSONCommandID ¶
type ReJSONCommandID int32
ReJSONCommandID marks a particular unique id to all the ReJSON commands to ensure proper type safety and help reducing typos in using them.
func (ReJSONCommandID) Details ¶
func (r ReJSONCommandID) Details() (CommandBuilderFunc, string, error)
Details returns the details of the CommandId like its command function and name
func (ReJSONCommandID) TypeSafety ¶
func (r ReJSONCommandID) TypeSafety() error
TypeSafety checks the validity of the command id
func (ReJSONCommandID) Value ¶
func (r ReJSONCommandID) Value() int32
Value returns integral value of the ReJSON Command ID
type ReJSONOption ¶
type ReJSONOption interface { // Value returns the value of the option being used Value() []interface{} // MethodID returns the ID of the ReJSON Function defined in ReJSONCommands // whose options are begins implemented MethodID() ReJSONCommandID }
ReJSONOption provides methods for the options used by various ReJSON commands It also abstracts options from the required parameters of the commands
Like:
JSON.GET, JSON.SET, JSON.ARRINDEX, JSON.ARRPOP