dissertation-2-code/config/config.go
2020-10-24 17:44:14 +01:00

34 lines
683 B
Go

package config
import "github.com/go-playground/validator/v10"
var v = validator.New()
type Configuration struct {
Host Host
Peers []Peer `validate:"dive"`
}
type Host struct {
PrivateKey string `validate:"required"`
}
type Peer struct {
PublicKey string `validate:"required"`
Method string `validate:"oneof=TCP"`
LocalHost string `validate:"omitempty,ip"`
LocalPort uint `validate:"max=65535"`
RemoteHost string `validate:"required_with=RemotePort,omitempty,fqdn|ip"`
RemotePort uint `validate:"required_with=RemoteHost,omitempty,max=65535"`
KeepAlive uint
Timeout uint
RetryWait uint
}
func (c Configuration) Validate() error {
return v.Struct(c)
}