From 23bc5f4fb7542e64c94eaa7fe2c7a6aa55010898 Mon Sep 17 00:00:00 2001 From: tjpcc Date: Sat, 12 Aug 2023 09:40:39 -0600 Subject: move common types to an internal package This helps avoid import cycles. --- handler.go | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) (limited to 'handler.go') diff --git a/handler.go b/handler.go index 1c2d6dc..f3c9edd 100644 --- a/handler.go +++ b/handler.go @@ -1,33 +1,19 @@ package sliderule -import "context" +import ( + "context" -// Handler is a type which can turn a request into a response. -// -// Handle may return a nil response, in which case the Server is expected -// to build the protocol-appropriate "Not Found" response. -type Handler interface { - Handle(context.Context, *Request) *Response -} + "tildegit.org/tjp/sliderule/internal/types" +) -type handlerFunc func(context.Context, *Request) *Response +type Handler = types.Handler +type Middleware = types.Middleware // HandlerFunc is a wrapper to allow using a function as a Handler. func HandlerFunc(f func(context.Context, *Request) *Response) Handler { - return handlerFunc(f) -} - -// Handle implements Handler. -func (f handlerFunc) Handle(ctx context.Context, request *Request) *Response { - return f(ctx, request) + return types.HandlerFunc(f) } -// Middleware is a handler decorator. -// -// It returns a handler which may call the passed-in handler or not, or may -// transform the request or response in some way. -type Middleware func(Handler) Handler - // FallthroughHandler builds a handler which tries multiple child handlers. // // The returned handler will invoke each of the passed-in handlers in order, -- cgit v1.2.3