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