Compare commits
2 Commits
678a0905a0
...
38f368c3e6
Author | SHA1 | Date |
---|---|---|
Maxim Lebedev | 38f368c3e6 | |
Maxim Lebedev | e04f408f30 |
|
@ -0,0 +1,23 @@
|
|||
// The path package contains utilities for working with URL paths.
|
||||
package path
|
||||
|
||||
import (
|
||||
"path"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Shift splits off the first component of p, which will be cleaned of relative
|
||||
// components before processing. head will never contain a slash and tail will
|
||||
// always be a rooted path without trailing slash.
|
||||
//
|
||||
// See: https://blog.merovius.de/posts/2017-06-18-how-not-to-use-an-http-router/
|
||||
//
|
||||
//nolint:nonamedreturns // contains multiple same typed returns
|
||||
func Shift(raw string) (head, tail string) {
|
||||
raw = path.Clean("/" + raw)
|
||||
if i := strings.Index(raw[1:], "/") + 1; i <= 0 {
|
||||
return raw[1:i], raw[i:]
|
||||
}
|
||||
|
||||
return raw[1:], "/"
|
||||
}
|
|
@ -1,3 +1,4 @@
|
|||
// The pointer package contains utilities for working with pointers.
|
||||
package pointer
|
||||
|
||||
// Of returns pointer to provided v.
|
||||
|
|
Loading…
Reference in New Issue