clustvirt/router/router.go
Matthew Stobbs 4c132c4abf removed chi router
- switched to go 1.22 net/http ServeMux for routing
- seems to be working really well
2024-03-23 23:59:56 -06:00

31 lines
725 B
Go

package router
import (
"net/http"
"git.staur.ca/stobbsm/clustvirt/cluster"
)
// Types that are shared among routers
// SubRouter defines an interface to be able to add a subrouter to a
// chi router
type SubRouter interface {
// MountTo needs the cluster handle and the mux to add to
MountTo(*cluster.Cluster, *http.ServeMux) error
// Prefix returns the path prefix
Prefix() string
}
// Route defines a route that should be added to a chi router or
// subrouter
type Route struct {
Method string
Path string
Handler RouteHandler
}
// RouteHandler gets the active cluster for the server to inject into
// the http.HandlerFunc that is then returned
type RouteHandler func(*cluster.Cluster) http.HandlerFunc