Source File
middleware.go
Belonging Package
github.com/gotd/td/telegram
package telegram
import (
)
// InvokeFunc implements tg.Invoker as function.
type InvokeFunc func(ctx context.Context, input bin.Encoder, output bin.Decoder) error
// Invoke implements tg.Invoker.
func ( InvokeFunc) ( context.Context, bin.Encoder, bin.Decoder) error {
return (, , )
}
// Middleware returns new InvokeFunc for next invoker.
type Middleware interface {
Handle(next tg.Invoker) InvokeFunc
}
// MiddlewareFunc implements Middleware as function.
type MiddlewareFunc func(next tg.Invoker) InvokeFunc
// Handle implements Middleware.
func ( MiddlewareFunc) ( tg.Invoker) InvokeFunc { return () }
// chainMiddlewares composes new invoker in such order that first element in
// chain is called first, and latest "next" argument will be "invoker".
//
// E.g. we have invoker and two middlewares, so order will be following:
// 0, 1, (invoker), 1 (after "next"), 0 (after "next").
//
// See TestMiddlewareOrder or ExampleMiddleware.
func ( tg.Invoker, ...Middleware) tg.Invoker {
if len() == 0 {
return
}
for := len() - 1; >= 0; -- {
= [].Handle()
}
return
}
The pages are generated with Golds v0.6.7. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |