narratio/editor/editor.go

34 lines
447 B
Go

package editor
type Editor struct {
s *State
in chan Command
refresh chan bool
}
func NewEditor(s *State) *Editor {
e := &Editor{
s: s,
in: make(chan Command),
refresh: make(chan bool),
}
go e.Run()
return e
}
func (e *Editor) In() chan Command {
return e.in
}
func (e *Editor) Out() chan bool {
return e.refresh
}
func (e *Editor) Run() {
for cmd := range e.in {
cmd.Do(e.s)
e.refresh <- true
}
}