fix golint issues in core/search (#509)
This commit is contained in:
@@ -8,12 +8,18 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ErrDupItem = errors.New("duplicated item")
|
// ErrDupItem means adding duplicated item.
|
||||||
ErrDupSlash = errors.New("duplicated slash")
|
ErrDupItem = errors.New("duplicated item")
|
||||||
ErrEmptyItem = errors.New("empty item")
|
// ErrDupSlash means item is started with more than one slash.
|
||||||
|
ErrDupSlash = errors.New("duplicated slash")
|
||||||
|
// ErrEmptyItem means adding empty item.
|
||||||
|
ErrEmptyItem = errors.New("empty item")
|
||||||
|
// ErrInvalidState means search tree is in an invalid state.
|
||||||
ErrInvalidState = errors.New("search tree is in an invalid state")
|
ErrInvalidState = errors.New("search tree is in an invalid state")
|
||||||
ErrNotFromRoot = errors.New("path should start with /")
|
// ErrNotFromRoot means path is not starting with slash.
|
||||||
|
ErrNotFromRoot = errors.New("path should start with /")
|
||||||
|
|
||||||
|
// NotFound is used to hold the not found result.
|
||||||
NotFound Result
|
NotFound Result
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -30,22 +36,26 @@ type (
|
|||||||
children [2]map[string]*node
|
children [2]map[string]*node
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A Tree is a search tree.
|
||||||
Tree struct {
|
Tree struct {
|
||||||
root *node
|
root *node
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A Result is a search result from tree.
|
||||||
Result struct {
|
Result struct {
|
||||||
Item interface{}
|
Item interface{}
|
||||||
Params map[string]string
|
Params map[string]string
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// NewTree returns a Tree.
|
||||||
func NewTree() *Tree {
|
func NewTree() *Tree {
|
||||||
return &Tree{
|
return &Tree{
|
||||||
root: newNode(nil),
|
root: newNode(nil),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add adds item to associate with route.
|
||||||
func (t *Tree) Add(route string, item interface{}) error {
|
func (t *Tree) Add(route string, item interface{}) error {
|
||||||
if len(route) == 0 || route[0] != slash {
|
if len(route) == 0 || route[0] != slash {
|
||||||
return ErrNotFromRoot
|
return ErrNotFromRoot
|
||||||
@@ -58,6 +68,7 @@ func (t *Tree) Add(route string, item interface{}) error {
|
|||||||
return add(t.root, route[1:], item)
|
return add(t.root, route[1:], item)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Search searches item that associates with given route.
|
||||||
func (t *Tree) Search(route string) (Result, bool) {
|
func (t *Tree) Search(route string) (Result, bool) {
|
||||||
if len(route) == 0 || route[0] != slash {
|
if len(route) == 0 || route[0] != slash {
|
||||||
return NotFound, false
|
return NotFound, false
|
||||||
|
|||||||
Reference in New Issue
Block a user