visualizer

package
v0.18.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 21, 2026 License: MIT Imports: 40 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrEmptyTx = errors.New("empty tx")
View Source
var HtmlDiagram []byte

Functions

func IsStateInherited added in v0.18.0

func IsStateInherited(state string, machStates am.S) bool

func PresetBird added in v0.16.1

func PresetBird(r *Renderer)

func PresetMap

func PresetMap(r *Renderer)

func PresetSingle

func PresetSingle(r *Renderer)

func UpdateCache added in v0.13.0

func UpdateCache(
	ctx context.Context, filepath string, dom *goquery.Document,
	fragments ...*Fragment,
) error

UpdateCache updates [dom] according to [fragments], and saves to filepath.

Types

type Fragment added in v0.16.1

type Fragment struct {
	MachId string
	States am.S
	Active am.S
}

type Renderer added in v0.16.1

type Renderer struct {

	// Render only these machines as starting points.
	RenderMachs []string
	// Render only these states
	RenderAllowlist am.S
	// Render only machines matching the regular expressions as starting points.
	RenderMachsRe []*regexp.Regexp
	// Skip rendering of these machines.
	RenderSkipMachs []string
	// TODO RenderSkipMachsRe       []regexp.Regexp
	// Distance to render from starting machines.
	RenderDistance int
	// How deep to render from starting machines. Same as RenderDistance, but only
	// for submachines.
	RenderDepth int

	// Render states bubbles.
	RenderStates bool
	// With RenderStates, false will hide Start, and without RenderStates true
	// will render Start.
	RenderStart bool
	// With RenderStates, false will hide Exception, and without RenderStates true
	// will render Exception.
	RenderException bool
	// With RenderStates, false will hide Ready, and without RenderStates true
	// will render Ready.
	RenderReady bool
	// Render states which have pipes being rendered, even if the state should
	// not be rendered.
	RenderPipeStates bool
	// Render group of pipes as mach->mach
	RenderPipes bool
	// Render pipes to non-rendered machines / states.
	RenderHalfPipes bool
	// Render detailed pipes as state -> state
	RenderDetailedPipes bool
	// Render relation between states. TODO After relation
	// TODO specific relations
	RenderRelations bool
	// Style currently active states. TODO style errors red
	RenderActive bool
	// Render the parent relation. Ignored when RenderNestSubmachines.
	RenderParentRel bool
	// Render submachines nested inside their parents. See also RenderDepth.
	RenderNestSubmachines bool
	// Render a tags box for machines having some.
	// TODO doesnt work?
	RenderTags bool
	// Render RPC connections
	RenderConns bool
	// Render RPC connections to non-rendered machines.
	RenderHalfConns bool
	// Render a parent relation to and from non-rendered machines.
	RenderHalfHierarchy bool
	// Render inherited states.
	RenderInherited bool
	// Mark inherited states. TODO refac to RenderMarkOwnStates
	RenderMarkInherited bool

	// Filename without an extension.
	OutputFilename string
	// Render a D2 SVG in addition to the plain text version.
	OutputD2Svg bool
	// Render a Mermaid SVG in addition to the plain text version.
	OutputMermaidSvg bool
	// Render edges using ELK.
	OutputElk bool

	// Output a D2 diagram (default)
	OutputD2 bool
	// Output a Mermaid diagram (basic support only).
	OutputMermaid bool
	// contains filtered or unexported fields
}

func NewRenderer added in v0.16.1

func NewRenderer(
	graph *amgraph.Graph, logger func(msg string, args ...any),
) *Renderer

func (*Renderer) GenDiagrams added in v0.16.1

func (r *Renderer) GenDiagrams(ctx context.Context) error

func (*Renderer) RenderDefaults added in v0.16.1

func (r *Renderer) RenderDefaults()

type Transition added in v0.18.0

type Transition struct {
	Tx *dbg.DbgMsgTx
}

func (*Transition) D2 added in v0.18.0

func (t *Transition) D2(
	ctx context.Context, log *slog.Logger, statesIndex am.S,
) (string, []byte, error)

D2 will generate a D2 sequence diagram and an SVG of a given transition.

func (*Transition) Mermaid added in v0.18.0

func (t *Transition) Mermaid(statesIndex am.S) (string, string, error)

type Visualizer

type Visualizer struct {
	Mach *am.Machine
	R    *Renderer
	// contains filtered or unexported fields
}

func New

func New(ctx context.Context, name string) (*Visualizer, error)

New creates a new Visualizer - state machine, RPC server, and a renderer.

func (*Visualizer) ClientMsgEnter added in v0.16.1

func (v *Visualizer) ClientMsgEnter(e *am.Event) bool

func (*Visualizer) ClientMsgState added in v0.16.1

func (v *Visualizer) ClientMsgState(e *am.Event)

func (*Visualizer) Clients added in v0.16.1

func (v *Visualizer) Clients() map[string]amgraph.Client

func (*Visualizer) ConnectEventEnter added in v0.16.1

func (v *Visualizer) ConnectEventEnter(e *am.Event) bool

func (*Visualizer) ConnectEventState added in v0.16.1

func (v *Visualizer) ConnectEventState(e *am.Event)

func (*Visualizer) GoToMachAddrState added in v0.16.1

func (v *Visualizer) GoToMachAddrState(e *am.Event)

func (*Visualizer) HImportData added in v0.16.1

func (v *Visualizer) HImportData(filename string) error

func (*Visualizer) InitClientState added in v0.16.1

func (v *Visualizer) InitClientState(e *am.Event)

Directories

Path Synopsis
Package states contains a stateful schema-v2 for Visualizer.
Package states contains a stateful schema-v2 for Visualizer.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL