Package query provides a parser for a custom query format:

    abci.invoice.number=22 AND abci.invoice.owner=Ivan

    See query.peg for the grammar, which is a More:

    It has a support for numbers (integer and floating point), dates and times.




    View Source
    const (
    	// DateLayout defines a layout for all dates (`DATE date`)
    	DateLayout = "2006-01-02"
    	// TimeLayout defines a layout for all times (`TIME time`)
    	TimeLayout = time.RFC3339


    This section is empty.


    This section is empty.


    type Condition

    type Condition struct {
    	Tag     string
    	Op      Operator
    	Operand interface{}

      Condition represents a single condition within a query and consists of tag (e.g. "tx.gas"), operator (e.g. "=") and operand (e.g. "7").

      type Empty

      type Empty struct {

        Empty query matches any set of tags.

        func (Empty) Matches

        func (Empty) Matches(tags map[string]string) bool

          Matches always returns true.

          func (Empty) String

          func (Empty) String() string

          type Operator

          type Operator uint8

            Operator is an operator that defines some kind of relation between tag and operand (equality, etc.).

            const (
            	// "<="
            	OpLessEqual Operator = iota
            	// ">="
            	// "<"
            	// ">"
            	// "="
            	// "CONTAINS"; used to check if a string contains a certain sub string.

            type Query

            type Query struct {
            	// contains filtered or unexported fields

              Query holds the query string and the query parser.

              func MustParse

              func MustParse(s string) *Query

                MustParse turns the given string into a query or panics; for tests or others cases where you know the string is valid.

                func New

                func New(s string) (*Query, error)

                  New parses the given string and returns a query or error if the string is invalid.

                  func (*Query) Conditions

                  func (q *Query) Conditions() []Condition

                    Conditions returns a list of conditions.

                    func (*Query) Matches

                    func (q *Query) Matches(tags map[string]string) bool

                      Matches returns true if the query matches the given set of tags, false otherwise.

                      For example, query "name=John" matches tags = {"name": "John"}. More examples could be found in parser_test.go and query_test.go.

                      func (*Query) String

                      func (q *Query) String() string

                        String returns the original string.

                        type QueryParser

                        type QueryParser struct {
                        	Buffer string
                        	Pretty bool
                        	// contains filtered or unexported fields

                        func (*QueryParser) AST

                        func (t *QueryParser) AST() *node32

                        func (*QueryParser) Add

                        func (t *QueryParser) Add(rule pegRule, begin, end, index uint32)

                        func (*QueryParser) Init

                        func (p *QueryParser) Init()

                        func (*QueryParser) Parse

                        func (p *QueryParser) Parse(rule error

                        func (*QueryParser) PrettyPrintSyntaxTree

                        func (t *QueryParser) PrettyPrintSyntaxTree(buffer string)

                        func (*QueryParser) Print

                        func (t *QueryParser) Print()

                        func (*QueryParser) PrintSyntaxTree

                        func (p *QueryParser) PrintSyntaxTree()

                        func (*QueryParser) Reset

                        func (p *QueryParser) Reset()

                        func (*QueryParser) Tokens

                        func (t *QueryParser) Tokens() []token32

                        func (*QueryParser) Trim

                        func (t *QueryParser) Trim(length uint32)


                        Path Synopsis