Documentation
¶
Overview ¶
Package piper is a lightweight typed operator chain: compose Operator / OperatorEx left-to-right without schedulers, channels, or [pipe]-style lifecycle.
Unlike github.com/xoctopus/concx/pkg/orch/pipe, piper is synchronous and inline. Use Exec / Exec2 … Exec8 for pure transforms (I → O), or ExecEx / ExecEx2 … ExecEx8 when each step takes a context.Context and may return an error. ExecEx variants stop at the first error and return the zero Tail.
out := piper.Exec3(in, parse, validate, format) out, err := piper.ExecEx2(ctx, in, load, save)
Operator is I → O. OperatorEx is (ctx, I) → (O, error). Intermediate type parameters (A, B, …) are inferred from the operator signatures.
Index ¶
- func Exec[Head, Tail any](v Head, op Operator[Head, Tail]) Tail
- func Exec2[Head, A, Tail any](v Head, op1 Operator[Head, A], op2 Operator[A, Tail]) Tail
- func Exec3[Head, A, B, Tail any](v Head, op1 Operator[Head, A], op2 Operator[A, B], op3 Operator[B, Tail]) Tail
- func Exec4[Head, A, B, C, Tail any](v Head, op1 Operator[Head, A], op2 Operator[A, B], op3 Operator[B, C], ...) Tail
- func Exec5[Head, A, B, C, D, Tail any](v Head, op1 Operator[Head, A], op2 Operator[A, B], op3 Operator[B, C], ...) Tail
- func Exec6[Head, A, B, C, D, E, Tail any](v Head, op1 Operator[Head, A], op2 Operator[A, B], op3 Operator[B, C], ...) Tail
- func Exec7[Head, A, B, C, D, E, F, Tail any](v Head, op1 Operator[Head, A], op2 Operator[A, B], op3 Operator[B, C], ...) Tail
- func Exec8[Head, A, B, C, D, E, F, G, Tail any](v Head, op1 Operator[Head, A], op2 Operator[A, B], op3 Operator[B, C], ...) Tail
- func ExecEx[Head, Tail any](ctx context.Context, v Head, op OperatorEx[Head, Tail]) (Tail, error)
- func ExecEx2[Head, A, Tail any](ctx context.Context, v Head, op1 OperatorEx[Head, A], op2 OperatorEx[A, Tail]) (x Tail, err error)
- func ExecEx3[Head, A, B, Tail any](ctx context.Context, v Head, op1 OperatorEx[Head, A], op2 OperatorEx[A, B], ...) (x Tail, err error)
- func ExecEx4[Head, A, B, C, Tail any](ctx context.Context, v Head, op1 OperatorEx[Head, A], op2 OperatorEx[A, B], ...) (x Tail, err error)
- func ExecEx5[Head, A, B, C, D, Tail any](ctx context.Context, v Head, op1 OperatorEx[Head, A], op2 OperatorEx[A, B], ...) (x Tail, err error)
- func ExecEx6[Head, A, B, C, D, E, Tail any](ctx context.Context, v Head, op1 OperatorEx[Head, A], op2 OperatorEx[A, B], ...) (x Tail, err error)
- func ExecEx7[Head, A, B, C, D, E, F, Tail any](ctx context.Context, v Head, op1 OperatorEx[Head, A], op2 OperatorEx[A, B], ...) (x Tail, err error)
- func ExecEx8[Head, A, B, C, D, E, F, G, Tail any](ctx context.Context, v Head, op1 OperatorEx[Head, A], op2 OperatorEx[A, B], ...) (x Tail, err error)
- type Operator
- type OperatorEx
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExecEx ¶
func ExecEx[Head, Tail any]( ctx context.Context, v Head, op OperatorEx[Head, Tail]) (Tail, error)
func ExecEx2 ¶
func ExecEx2[Head, A, Tail any]( ctx context.Context, v Head, op1 OperatorEx[Head, A], op2 OperatorEx[A, Tail], ) (x Tail, err error)
func ExecEx3 ¶
func ExecEx3[Head, A, B, Tail any]( ctx context.Context, v Head, op1 OperatorEx[Head, A], op2 OperatorEx[A, B], op3 OperatorEx[B, Tail], ) (x Tail, err error)
func ExecEx4 ¶
func ExecEx4[Head, A, B, C, Tail any]( ctx context.Context, v Head, op1 OperatorEx[Head, A], op2 OperatorEx[A, B], op3 OperatorEx[B, C], op4 OperatorEx[C, Tail], ) (x Tail, err error)
func ExecEx5 ¶
func ExecEx5[Head, A, B, C, D, Tail any]( ctx context.Context, v Head, op1 OperatorEx[Head, A], op2 OperatorEx[A, B], op3 OperatorEx[B, C], op4 OperatorEx[C, D], op5 OperatorEx[D, Tail], ) (x Tail, err error)
func ExecEx6 ¶
func ExecEx6[Head, A, B, C, D, E, Tail any]( ctx context.Context, v Head, op1 OperatorEx[Head, A], op2 OperatorEx[A, B], op3 OperatorEx[B, C], op4 OperatorEx[C, D], op5 OperatorEx[D, E], op6 OperatorEx[E, Tail], ) (x Tail, err error)
func ExecEx7 ¶
func ExecEx7[Head, A, B, C, D, E, F, Tail any]( ctx context.Context, v Head, op1 OperatorEx[Head, A], op2 OperatorEx[A, B], op3 OperatorEx[B, C], op4 OperatorEx[C, D], op5 OperatorEx[D, E], op6 OperatorEx[E, F], op7 OperatorEx[F, Tail], ) (x Tail, err error)
func ExecEx8 ¶
func ExecEx8[Head, A, B, C, D, E, F, G, Tail any]( ctx context.Context, v Head, op1 OperatorEx[Head, A], op2 OperatorEx[A, B], op3 OperatorEx[B, C], op4 OperatorEx[C, D], op5 OperatorEx[D, E], op6 OperatorEx[E, F], op7 OperatorEx[F, G], op8 OperatorEx[G, Tail], ) (x Tail, err error)
Types ¶
Click to show internal directories.
Click to hide internal directories.