Versions in this module Expand all Collapse all v0 v0.1.1 Nov 13, 2025 Changes in this version + type CommandHandler interface + HandleCommand func(T) bool + type CommandHandlerFunc func(T) bool + func (f CommandHandlerFunc[T]) HandleCommand(cmd T) bool + type CommandLoop struct + func NewCommandLoop[T any](source CommandSource[T], handler CommandHandler[T]) *CommandLoop[T] + func (c *CommandLoop[T]) DrainPending() bool + func (c *CommandLoop[T]) WaitAndHandle(ctx context.Context) bool + type CommandSource interface + NextCommand func() (T, bool) + WaitCommand func(context.Context) (T, bool) + type Runner struct + func NewRunner[TCommand any, Frame any](loop *CommandLoop[TCommand], visual *VisualBridge[Frame]) *Runner[TCommand, Frame] + func (r *Runner[TCommand, Frame]) DrainPendingCommands() bool + func (r *Runner[TCommand, Frame]) PublishFrame(frame Frame) + func (r *Runner[TCommand, Frame]) UpdateCommandLoop(loop *CommandLoop[TCommand]) + func (r *Runner[TCommand, Frame]) UpdateVisualBridge(visual *VisualBridge[Frame]) + func (r *Runner[TCommand, Frame]) VisualEnabled() bool + func (r *Runner[TCommand, Frame]) WaitForCommand(ctx context.Context) bool + type VisualBridge struct + func NewVisualBridge[Frame any](headless bool, publish func(Frame)) *VisualBridge[Frame] + func (v *VisualBridge[Frame]) IsHeadless() bool + func (v *VisualBridge[Frame]) Publish(frame Frame) + func (v *VisualBridge[Frame]) SetHeadless(headless bool) + func (v *VisualBridge[Frame]) UpdatePublisher(publish func(Frame)) v0.1.0 Nov 12, 2025