package adapter import "context" type UserTraffic struct { Tx int64 `json:"tx"` Rx int64 `json:"rx"` } type UserInfo struct { Username string Credential string } type UserManager interface { Service Authenticate(ctx context.Context, protocol string, credential string, addr string) (username string, err error) GetCredentials(protocol string) ([]UserInfo, error) ReportTraffic(username string, tx int64, rx int64) GetTraffic(username string) (tx int64, rx int64) ListTraffic() map[string]UserTraffic KickUser(username string) }