// Copyright 2024 Matthew Rich . All rights reserved. package machine import ( "fmt" ) const ( ENTERSTATEEVENT = iota EXITSTATEEVENT ) type Eventtype int type EventMessage struct { on Eventtype source State dest State } type EventChannel chan EventMessage func (e *EventChannel) Notify(m *EventMessage) { *e <- *m } func (m EventMessage) String() string { return fmt.Sprintf("{on: %d, source: %s, dest: %s}", m.on, m.source, m.dest) }