Documentation
¶
Index ¶
- type Applicative
- type Builder
- func (m *Builder) ID() string
- func (m *Builder) Inject(ctx context.Context, events map[string][]*Packet)
- func (m *Builder) Route(r *Splitter) *Builder
- func (m *Builder) Run(ctx context.Context, recorders ...func(string, string, string, []*Packet)) error
- func (m *Builder) Terminate(t *Transmission) *Builder
- func (m *Builder) Then(v *Vertex) *Builder
- type Option
- type Packet
- type Retriever
- type Sender
- type SplitHandler
- type SplitRule
- type Splitter
- func (m *Splitter) RouteLeft(left *Splitter) *Splitter
- func (m *Splitter) RouteRight(right *Splitter) *Splitter
- func (m *Splitter) TerminateLeft(t *Transmission) *Splitter
- func (m *Splitter) TerminateRight(t *Transmission) *Splitter
- func (m *Splitter) ThenLeft(left *Vertex) *Splitter
- func (m *Splitter) ThenRight(right *Vertex) *Splitter
- type Transmission
- type Vertex
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Applicative ¶ added in v0.3.0
Applicative type for applying a change to a context
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder builder type for starting a machine
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 *Transmission) *Builder
Terminate func for sending the payload to a cap
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 SplitHandler ¶ added in v0.3.0
SplitHandler func for splitting a payload into 2
var ( // SplitDuplicate is a RouteHandler that sends data to both outputs SplitDuplicate SplitHandler = 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 } // SplitError is a RouteHandler for splitting errors from successes SplitError SplitHandler = 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 SplitRule ¶ added in v0.3.0
SplitRule type for validating a context at the beginning of a Machine
type Splitter ¶ added in v0.3.0
type Splitter struct {
// contains filtered or unexported fields
}
Splitter builder type for adding a router to the machine
func NewSplitter ¶ added in v0.3.0
func NewSplitter(id string, s SplitHandler) *Splitter
NewSplitter func for providing an instance of RouterBuilder
func (*Splitter) RouteRight ¶ added in v0.3.0
RouteRight func for sending the payload to a router
func (*Splitter) TerminateLeft ¶ added in v0.3.0
func (m *Splitter) TerminateLeft(t *Transmission) *Splitter
TerminateLeft func for sending the payload to a cap
func (*Splitter) TerminateRight ¶ added in v0.3.0
func (m *Splitter) TerminateRight(t *Transmission) *Splitter
TerminateRight func for sending the payload to a cap
type Transmission ¶ added in v0.3.0
type Transmission struct {
// contains filtered or unexported fields
}
Transmission builder type for adding a termination to the machine
func NewTransmission ¶ added in v0.3.0
func NewTransmission(id string, s Sender) *Transmission
NewTransmission func for providing an instance of TerminationBuilder
type Vertex ¶ added in v0.3.0
type Vertex struct {
// contains filtered or unexported fields
}
Vertex builder type for adding a processor to the machine
func NewVertex ¶
func NewVertex(id string, a Applicative) *Vertex
NewVertex func for providing an instance of VertexBuilder
func (*Vertex) Terminate ¶ added in v0.3.0
func (m *Vertex) Terminate(t *Transmission) *Vertex
Terminate func for sending the payload to a cap
