From 7e2170d97d7702e92545e4d6277bcf311a7d0727 Mon Sep 17 00:00:00 2001 From: treilik Date: Tue, 22 Jun 2021 15:59:22 +0200 Subject: [PATCH] feat: export BatchMsg There's no good reason to keep it private. Exporting it helps testability, debugging, and allows for a few special model.Update implementations. --- commands.go | 8 ++++---- commands_test.go | 4 ++-- tea.go | 2 +- tea_test.go | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/commands.go b/commands.go index 08f1a2e850..10444e0893 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 9caf18e6ea..0ec1419e67 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 f0e74c8cea..d2c19ff50e 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 4b087bd96c..6140677d3c 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)