feat: address file
This commit is contained in:
36
hsp/address.go
Normal file
36
hsp/address.go
Normal file
@ -0,0 +1,36 @@
|
||||
package hsp
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type Adddress struct {
|
||||
Host string
|
||||
Route string
|
||||
}
|
||||
|
||||
func ParseAddress(address string) (*Adddress, error) {
|
||||
parts := strings.SplitN(address, "/", 2)
|
||||
|
||||
var route string
|
||||
if len(parts) == 1 {
|
||||
route = "/"
|
||||
} else if len(parts) > 1 {
|
||||
route = "/" + strings.Join(parts[1:], "")
|
||||
} else {
|
||||
return nil, fmt.Errorf("Failed to parse address: %s", address)
|
||||
}
|
||||
|
||||
addr := parts[0]
|
||||
|
||||
return &Adddress{
|
||||
Host: addr,
|
||||
Route: route,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (a *Adddress) String() string {
|
||||
return fmt.Sprintf("%s:%s", a.Host, HSP_PORT)
|
||||
}
|
||||
|
Reference in New Issue
Block a user