Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrContextUntypedNil = fmt.Errorf("context.Context is untyped nil")
var ErrMatchFailed = fmt.Errorf("failed to match between args and prefixes")
var ErrNoFunctionRegistered = fmt.Errorf("no function registered")
var ErrNotFound = fmt.Errorf("not found: none of the lookup functions returned true as the second return value")
Functions ¶
This section is empty.
Types ¶
type InvalidFunctionError ¶
func (InvalidFunctionError) Error ¶
func (e InvalidFunctionError) Error() string
type LookupAnyWithContext ¶
func FuncWithContext ¶
type LookupAnyWithContextError ¶
func FuncWithContextError ¶
type LookupAnyWithError ¶
func FuncWithError ¶
func FuncWithError[R any](fn func(val string) (R, bool, error)) LookupAnyWithError
type LookupFunc ¶
type LookupFunc interface {
// contains filtered or unexported methods
}
LookupFunc は、MultiLookup に登録する個々関数で、prefixを取り除いたキーを文字列として受け取って何かしらの値を返す必要があります。 LookupFunc インタフェースを満たすには、 tempura.FuncXXXX 経由で LookupAnyXXXX 型を生成することが推奨されます。 tempura.FuncXXXX で登場するジェネリック型制約はanyですが、 template パッケージが処理できない型を利用すると実行時エラーになる可能性があります。
LookupFunc represents individual functions registered in MultiLookup, which receive the key as a string, with the prefix removed, and return some value. It is recommended to generate a LookupAnyXXXX type through tempura.FuncXXXX to satisfy the LookupFunc interface. The generic type constraint in tempura.FuncXXXX is 'any', but using types that the template package cannot process might result in runtime errors.
type MultiLookup ¶
type MultiLookup map[Prefix]LookupFunc
MultiLookup は、1つまたは複数の文字列を引数として受け取るアクションにおいて、引数のプレフィックスに応じて異なる探索関数を実行するための機構です。 ただし context.Context を受け取る関数も利用する場合は、 BindContext(ctx) を呼び出して MultiLookupContext を生成する必要があります。
MultiLookup is a mechanism for executing different lookup functions depending on the prefix of the arguments in actions that take one or more strings as arguments. NOTE: If you want to use a function that takes context.Context, you need to call BindContext(ctx) to generate MultiLookupContext.
func (MultiLookup) BindContext ¶
func (m MultiLookup) BindContext(ctx context.Context) *MultiLookupContext
func (MultiLookup) FuncMapValue ¶
func (m MultiLookup) FuncMapValue(args ...string) (any, error)
func (MultiLookup) Validate ¶
func (m MultiLookup) Validate() error
type MultiLookupContext ¶
type MultiLookupContext struct { MultiLookup MultiLookup Ctx context.Context }
MultiLookupContext は context.Context を受け取る関数を利用できる MultiLookup です。 BindContext(ctx) を呼び出して生成してください。
MultiLookupContext is a MultiLookup that can use functions that accept context.Context. Generate it by calling BindContext(ctx).
func (*MultiLookupContext) FuncMapValue ¶
func (m *MultiLookupContext) FuncMapValue(args ...string) (any, error)
func (*MultiLookupContext) Validate ¶
func (m *MultiLookupContext) Validate() error
type SlashPrefix ¶
type SlashPrefix string
func (SlashPrefix) Match ¶
func (p SlashPrefix) Match(s string) bool
func (SlashPrefix) Strip ¶
func (p SlashPrefix) Strip(s string) string