diff --git a/commands.go b/commands.go index 08f1a2e..10444e0 100644 --- a/commands.go +++ b/commands.go @@ -24,13 +24,13 @@ func Batch(cmds ...Cmd) Cmd { return nil } return func() Msg { - return batchMsg(validCmds) + return BatchMsg(validCmds) } } -// batchMsg is the internal message used to perform a bunch of commands. You -// can send a batchMsg with Batch. -type batchMsg []Cmd +// BatchMsg is a message used to perform a bunch of commands concurrently with +// no ordering guarantees. You can send a BatchMsg with Batch. +type BatchMsg []Cmd // Sequence runs the given commands one at a time, in order. Contrast this with // Batch, which runs commands concurrently. diff --git a/commands_test.go b/commands_test.go index 9caf18e..0ec1419 100644 --- a/commands_test.go +++ b/commands_test.go @@ -94,13 +94,13 @@ func TestBatch(t *testing.T) { }) t.Run("single cmd", func(t *testing.T) { b := Batch(Quit)() - if l := len(b.(batchMsg)); l != 1 { + if l := len(b.(BatchMsg)); l != 1 { t.Fatalf("expected a []Cmd with len 1, got %d", l) } }) t.Run("mixed nil cmds", func(t *testing.T) { b := Batch(nil, Quit, nil, Quit, nil, nil)() - if l := len(b.(batchMsg)); l != 2 { + if l := len(b.(BatchMsg)); l != 2 { t.Fatalf("expected a []Cmd with len 2, got %d", l) } }) diff --git a/tea.go b/tea.go index f0e74c8..d2c19ff 100644 --- a/tea.go +++ b/tea.go @@ -295,7 +295,7 @@ func (p *Program) eventLoop(model Model, cmds chan Cmd) (Model, error) { // NB: this blocks. p.exec(msg.cmd, msg.fn) - case batchMsg: + case BatchMsg: for _, cmd := range msg { cmds <- cmd } diff --git a/tea_test.go b/tea_test.go index 4b087bd..6140677 100644 --- a/tea_test.go +++ b/tea_test.go @@ -108,7 +108,7 @@ func TestTeaBatchMsg(t *testing.T) { m := &testModel{} p := NewProgram(m, WithInput(&in), WithOutput(&buf)) go func() { - p.Send(batchMsg{inc, inc}) + p.Send(BatchMsg{inc, inc}) for { time.Sleep(time.Millisecond)