package cqrs import ( "context" ) type Query interface{} type QueryHandler interface { Handle(ctx context.Context, query Query) (interface{}, error) } type QueryHandlerFunc func(ctx context.Context, query Query) (Query, error) func (f QueryHandlerFunc) Handle(ctx context.Context, query Query) ( interface{}, error, ) { return f(ctx, query) } type QueryMiddleware func(QueryHandler) QueryHandler