1
0
mirror of https://github.com/mainflux/mainflux.git synced 2025-04-27 13:48:49 +08:00
Aleksandar Novaković 263108cc85 Migrate from dep to go modules (#971)
Signed-off-by: Aleksandar Novakovic <anovakovic01@gmail.com>
2019-11-27 15:29:34 +01:00

62 lines
1.2 KiB
Go

/********************************
*** Multiplexer for Go ***
*** Bone is under MIT license ***
*** Code by CodingFerret ***
*** github.com/go-zoo ***
*********************************/
package bone
// Validator can be passed to a route to validate the params
type Validator interface {
Validate(string) bool
}
type validatorFunc struct {
validateFunc func(string) bool
}
func newValidatorFunc(v func(string) bool) validatorFunc {
return validatorFunc{validateFunc: v}
}
func (v validatorFunc) Validate(s string) bool {
return v.validateFunc(s)
}
type validatorInfo struct {
start int
end int
name string
}
func containsValidators(path string) []validatorInfo {
var index []int
for i, c := range path {
if c == '|' {
index = append(index, i)
}
}
if len(index) > 0 {
var validators []validatorInfo
for i, pos := range index {
if i+1 == len(index) {
validators = append(validators, validatorInfo{
start: pos,
end: len(path),
name: path[pos:len(path)],
})
} else {
validators = append(validators, validatorInfo{
start: pos,
end: index[i+1],
name: path[pos:index[i+1]],
})
}
}
return validators
}
return nil
}