Documentation
¶
Index ¶
- type Builder
- func (m *Builder) ID() string
- func (m *Builder) Inject(ctx context.Context, events map[string][]*Packet)
- func (m *Builder) Route(r *RouterBuilder) *Builder
- func (m *Builder) Run(ctx context.Context, recorders ...func(string, string, string, []*Packet)) error
- func (m *Builder) Terminate(t *TerminationBuilder) *Builder
- func (m *Builder) Then(v *VertexBuilder) *Builder
- type Initium
- type Option
- type Packet
- type Processus
- type RouteHandler
- type RouterBuilder
- func (m *RouterBuilder) RouteLeft(left *RouterBuilder) *RouterBuilder
- func (m *RouterBuilder) RouteRight(right *RouterBuilder) *RouterBuilder
- func (m *RouterBuilder) TerminateLeft(t *TerminationBuilder) *RouterBuilder
- func (m *RouterBuilder) TerminateRight(t *TerminationBuilder) *RouterBuilder
- func (m *RouterBuilder) ThenLeft(left *VertexBuilder) *RouterBuilder
- func (m *RouterBuilder) ThenRight(right *VertexBuilder) *RouterBuilder
- type RouterRule
- type TerminationBuilder
- type Terminus
- type VertexBuilder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder builder type for starting a machine
func (*Builder) Route ¶
func (m *Builder) Route(r *RouterBuilder) *Builder
Route func for sending the payload to a router
func (*Builder) Run ¶ added in v0.1.5
func (m *Builder) Run(ctx context.Context, recorders ...func(string, string, string, []*Packet)) error
Run func for starting the machine
func (*Builder) Terminate ¶
func (m *Builder) Terminate(t *TerminationBuilder) *Builder
Terminate func for sending the payload to a cap
func (*Builder) Then ¶
func (m *Builder) Then(v *VertexBuilder) *Builder
Then func for sending the payload to a processor
type Packet ¶
type Packet struct {
ID string
Data typed.Typed
Error error
// contains filtered or unexported fields
}
Packet type that holds information traveling through the machine
type RouteHandler ¶
RouteHandler func for splitting a payload into 2
var ( // RouterDuplicate is a RouteHandler that sends data to both outputs RouterDuplicate RouteHandler = func(payload []*Packet) (a, b []*Packet) { a = []*Packet{} b = []*Packet{} for _, packet := range payload { a = append(a, packet) b = append(b, packet) } return a, b } // RouterError is a RouteHandler for splitting errors from successes RouterError RouteHandler = func(payload []*Packet) (s, f []*Packet) { s = []*Packet{} f = []*Packet{} for _, packet := range payload { if packet.Error != nil { f = append(f, packet) } else { s = append(s, packet) } } return s, f } )
type RouterBuilder ¶
type RouterBuilder struct {
// contains filtered or unexported fields
}
RouterBuilder builder type for adding a router to the machine
func NewRouter ¶
func NewRouter(id string, r RouteHandler) *RouterBuilder
NewRouter func for providing an instance of RouterBuilder
func (*RouterBuilder) RouteLeft ¶
func (m *RouterBuilder) RouteLeft(left *RouterBuilder) *RouterBuilder
RouteLeft func for sending the payload to a router
func (*RouterBuilder) RouteRight ¶
func (m *RouterBuilder) RouteRight(right *RouterBuilder) *RouterBuilder
RouteRight func for sending the payload to a router
func (*RouterBuilder) TerminateLeft ¶
func (m *RouterBuilder) TerminateLeft(t *TerminationBuilder) *RouterBuilder
TerminateLeft func for sending the payload to a cap
func (*RouterBuilder) TerminateRight ¶
func (m *RouterBuilder) TerminateRight(t *TerminationBuilder) *RouterBuilder
TerminateRight func for sending the payload to a cap
func (*RouterBuilder) ThenLeft ¶
func (m *RouterBuilder) ThenLeft(left *VertexBuilder) *RouterBuilder
ThenLeft func for sending the payload to a processor
func (*RouterBuilder) ThenRight ¶
func (m *RouterBuilder) ThenRight(right *VertexBuilder) *RouterBuilder
ThenRight func for sending the payload to a processor
type RouterRule ¶
RouterRule type for validating a context at the beginning of a Machine
func (RouterRule) Handler ¶
func (r RouterRule) Handler(payload []*Packet) (t, f []*Packet)
Handler func for providing a RouteHandler
type TerminationBuilder ¶
type TerminationBuilder struct {
// contains filtered or unexported fields
}
TerminationBuilder builder type for adding a termination to the machine
func NewTermination ¶
func NewTermination(id string, t Terminus) *TerminationBuilder
NewTermination func for providing an instance of TerminationBuilder
type VertexBuilder ¶
type VertexBuilder struct {
// contains filtered or unexported fields
}
VertexBuilder builder type for adding a processor to the machine
func NewVertex ¶
func NewVertex(id string, p Processus) *VertexBuilder
NewVertex func for providing an instance of VertexBuilder
func (*VertexBuilder) Route ¶
func (m *VertexBuilder) Route(r *RouterBuilder) *VertexBuilder
Route func for sending the payload to a router
func (*VertexBuilder) Terminate ¶
func (m *VertexBuilder) Terminate(t *TerminationBuilder) *VertexBuilder
Terminate func for sending the payload to a cap
func (*VertexBuilder) Then ¶
func (m *VertexBuilder) Then(v *VertexBuilder) *VertexBuilder
Then func for sending the payload to a processor
