package master import ( "git.wzray.com/homelab/hivemind/internal/transport" "git.wzray.com/homelab/hivemind/internal/types" ) type MasterHandlers interface { Heartbeat(types.Node) (types.Nodes, error) Join(types.Node) (types.Nodes, error) Leave(types.Node) error EventHeartbeat(types.Node) (types.Nodes, error) EventJoin(types.Node) (types.Nodes, error) EventLeave(types.Node) error } func Register(registrator transport.Registrator, h MasterHandlers) { heartbeatRoute.Register(registrator, h.Heartbeat) joinRoute.Register(registrator, h.Join) leaveRoute.Register(registrator, transport.WithoutOutput(h.Leave)) eventHeartbeatRoute.Register(registrator, h.EventHeartbeat) eventJoinRoute.Register(registrator, h.EventJoin) eventLeaveRoute.Register(registrator, transport.WithoutOutput(h.EventLeave)) }