Documentation ¶
Index ¶
- Constants
- func ReadRouter(data json.RawMessage) (flows.Router, error)
- func RegisterType(name string, initFunc func() flows.Router)
- func RegisteredTypes() map[string](func() flows.Router)
- type BaseRouter
- func (r *BaseRouter) EnumerateDependencies(localization flows.Localization, include func(assets.Reference))
- func (r *BaseRouter) EnumerateResultNames(include func(string))
- func (r *BaseRouter) EnumerateTemplates(localization flows.Localization, include func(string))
- func (r *BaseRouter) ResultName() string
- func (r *BaseRouter) RewriteTemplates(localization flows.Localization, rewrite func(string) string)
- func (r *BaseRouter) Type() string
- type Case
- func (c *Case) EnumerateDependencies(localization flows.Localization, include func(assets.Reference))
- func (c *Case) EnumerateResultNames(include func(string))
- func (c *Case) EnumerateTemplates(localization flows.Localization, include func(string))
- func (c *Case) Inspect(inspect func(flows.Inspectable))
- func (c *Case) LocalizationUUID() utils.UUID
- func (c *Case) RewriteTemplates(localization flows.Localization, rewrite func(string) string)
- type FirstRouter
- type RandomOnceRouter
- type RandomRouter
- type SwitchRouter
- func (r *SwitchRouter) EnumerateDependencies(localization flows.Localization, include func(assets.Reference))
- func (r *SwitchRouter) EnumerateTemplates(localization flows.Localization, include func(string))
- func (r *SwitchRouter) Inspect(inspect func(flows.Inspectable))
- func (r *SwitchRouter) PickRoute(run flows.FlowRun, exits []flows.Exit, step flows.Step) (*string, flows.Route, error)
- func (r *SwitchRouter) RewriteTemplates(localization flows.Localization, rewrite func(string) string)
- func (r *SwitchRouter) Validate(exits []flows.Exit) error
Constants ¶
const TypeFirst string = "first"
TypeFirst is the type for FirstRouters
const TypeRandom string = "random"
TypeRandom is the type for a random router
const TypeRandomOnce string = "random_once"
TypeRandomOnce is the constant for our random once router
const TypeSwitch string = "switch"
TypeSwitch is the constant for our switch router
Variables ¶
This section is empty.
Functions ¶
func ReadRouter ¶ added in v0.11.0
func ReadRouter(data json.RawMessage) (flows.Router, error)
ReadRouter reads a router from the given JSON
func RegisterType ¶ added in v0.11.0
RegisterType registers a new type of router
func RegisteredTypes ¶ added in v0.29.7
RegisteredTypes gets the registered types of router
Types ¶
type BaseRouter ¶
type BaseRouter struct { Type_ string `json:"type" validate:"required"` // ResultName_ is the name of the which the result of this router should be saved as (if any) ResultName_ string `json:"result_name,omitempty"` }
BaseRouter is the base class for all our router classes
func (*BaseRouter) EnumerateDependencies ¶ added in v0.29.0
func (r *BaseRouter) EnumerateDependencies(localization flows.Localization, include func(assets.Reference))
EnumerateDependencies enumerates all dependencies on this object
func (*BaseRouter) EnumerateResultNames ¶ added in v0.29.0
func (r *BaseRouter) EnumerateResultNames(include func(string))
EnumerateResultNames enumerates all result names on this object
func (*BaseRouter) EnumerateTemplates ¶ added in v0.29.0
func (r *BaseRouter) EnumerateTemplates(localization flows.Localization, include func(string))
EnumerateTemplates enumerates all expressions on this object and its children
func (*BaseRouter) ResultName ¶
func (r *BaseRouter) ResultName() string
ResultName returns the name which the result of this router should be saved as (if any)
func (*BaseRouter) RewriteTemplates ¶ added in v0.29.0
func (r *BaseRouter) RewriteTemplates(localization flows.Localization, rewrite func(string) string)
RewriteTemplates rewrites all templates on this object and its children
func (*BaseRouter) Type ¶ added in v0.22.0
func (r *BaseRouter) Type() string
Type returns the type of this router
type Case ¶
type Case struct { UUID utils.UUID `json:"uuid" validate:"required"` Type string `json:"type" validate:"required"` Arguments []string `json:"arguments,omitempty"` OmitOperand bool `json:"omit_operand,omitempty"` ExitUUID flows.ExitUUID `json:"exit_uuid" validate:"required"` }
Case represents a single case and test in our switch
func NewCase ¶ added in v0.23.0
func NewCase(uuid utils.UUID, type_ string, arguments []string, omitOperand bool, exitUUID flows.ExitUUID) *Case
NewCase creates a new case
func (*Case) EnumerateDependencies ¶ added in v0.29.0
func (c *Case) EnumerateDependencies(localization flows.Localization, include func(assets.Reference))
EnumerateDependencies enumerates all dependencies on this object and its children
func (*Case) EnumerateResultNames ¶ added in v0.29.0
EnumerateResultNames enumerates all result names on this object
func (*Case) EnumerateTemplates ¶ added in v0.29.0
func (c *Case) EnumerateTemplates(localization flows.Localization, include func(string))
EnumerateTemplates enumerates all expressions on this object and its children
func (*Case) Inspect ¶ added in v0.29.0
func (c *Case) Inspect(inspect func(flows.Inspectable))
Inspect inspects this object and any children
func (*Case) LocalizationUUID ¶ added in v0.29.0
LocalizationUUID gets the UUID which identifies this object for localization
func (*Case) RewriteTemplates ¶ added in v0.29.0
func (c *Case) RewriteTemplates(localization flows.Localization, rewrite func(string) string)
RewriteTemplates rewrites all templates on this object and its children
type FirstRouter ¶
type FirstRouter struct {
BaseRouter
}
FirstRouter is a simple router that always takes the first exit
func NewFirstRouter ¶ added in v0.4.0
func NewFirstRouter(resultName string) *FirstRouter
func (*FirstRouter) Inspect ¶ added in v0.29.0
func (r *FirstRouter) Inspect(inspect func(flows.Inspectable))
Inspect inspects this object and any children
type RandomOnceRouter ¶
type RandomOnceRouter struct { BaseRouter Default flows.ExitUUID `json:"default_exit_uuid" validate:"required,uuid4"` }
RandomOnceRouter exits of our exits once (randomly) before taking exit
func NewRandomOnceRouter ¶ added in v0.4.0
func NewRandomOnceRouter(defaultExit flows.ExitUUID, resultName string) *RandomOnceRouter
NewRandomOnceRouter creates a new random-once router
func (*RandomOnceRouter) Inspect ¶ added in v0.29.0
func (r *RandomOnceRouter) Inspect(inspect func(flows.Inspectable))
Inspect inspects this object and any children
func (*RandomOnceRouter) PickRoute ¶
func (r *RandomOnceRouter) PickRoute(run flows.FlowRun, exits []flows.Exit, step flows.Step) (*string, flows.Route, error)
PickRoute will attempt to take a random exit it hasn't taken before. If all exits have been taken, then it will take the exit specified in it's Exit parameter
type RandomRouter ¶
type RandomRouter struct {
BaseRouter
}
RandomRouter is a router which will exit out a random exit
func NewRandomRouter ¶ added in v0.4.0
func NewRandomRouter(resultName string) *RandomRouter
NewRandomRouter creates a new random router
func (*RandomRouter) Inspect ¶ added in v0.29.0
func (r *RandomRouter) Inspect(inspect func(flows.Inspectable))
Inspect inspects this object and any children
type SwitchRouter ¶
type SwitchRouter struct { BaseRouter Default flows.ExitUUID `json:"default_exit_uuid" validate:"omitempty,uuid4"` Operand string `json:"operand" validate:"required"` Cases []*Case `json:"cases"` }
SwitchRouter is a router which allows specifying 0-n cases which should each be tested in order, following whichever case returns true, or if none do, then taking the default exit
func NewSwitchRouter ¶ added in v0.4.0
func NewSwitchRouter(defaultExit flows.ExitUUID, operand string, cases []*Case, resultName string) *SwitchRouter
NewSwitchRouter creates a new switch router
func (*SwitchRouter) EnumerateDependencies ¶ added in v0.29.0
func (r *SwitchRouter) EnumerateDependencies(localization flows.Localization, include func(assets.Reference))
EnumerateDependencies enumerates all dependencies on this object and its children
func (*SwitchRouter) EnumerateTemplates ¶ added in v0.29.0
func (r *SwitchRouter) EnumerateTemplates(localization flows.Localization, include func(string))
EnumerateTemplates enumerates all expressions on this object and its children
func (*SwitchRouter) Inspect ¶ added in v0.29.0
func (r *SwitchRouter) Inspect(inspect func(flows.Inspectable))
Inspect inspects this object and any children
func (*SwitchRouter) PickRoute ¶
func (r *SwitchRouter) PickRoute(run flows.FlowRun, exits []flows.Exit, step flows.Step) (*string, flows.Route, error)
PickRoute evaluates each of the tests on our cases in order, returning the exit for the first case which evaluates to a true. If no cases evaluate to true, then the default exit (if specified) is returned
func (*SwitchRouter) RewriteTemplates ¶ added in v0.29.0
func (r *SwitchRouter) RewriteTemplates(localization flows.Localization, rewrite func(string) string)
RewriteTemplates rewrites all templates on this object and its children