diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c6f0da93..135beb8d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,7 +20,7 @@ jobs: fail-fast: false matrix: module: ${{fromJson(needs.prepare-matrix.outputs.matrix)}} - go-version: ['1.21.0', '1.22.0'] + go-version: ['1.21.0', '1.22.0', '1.23.0'] steps: - name: Checkout code uses: actions/checkout@v4 diff --git a/internal/cmds/iter.go b/internal/cmds/iter.go new file mode 100644 index 00000000..ac67bf13 --- /dev/null +++ b/internal/cmds/iter.go @@ -0,0 +1,26 @@ +//go:build go1.23 + +package cmds + +import "iter" + +func (c HmsetFieldValue) FieldValueIter(seq iter.Seq2[string, string]) HmsetFieldValue { + for field, value := range seq { + c.cs.s = append(c.cs.s, field, value) + } + return c +} + +func (c HsetFieldValue) FieldValueIter(seq iter.Seq2[string, string]) HsetFieldValue { + for field, value := range seq { + c.cs.s = append(c.cs.s, field, value) + } + return c +} + +func (c XaddFieldValue) FieldValueIter(seq iter.Seq2[string, string]) XaddFieldValue { + for field, value := range seq { + c.cs.s = append(c.cs.s, field, value) + } + return c +} diff --git a/internal/cmds/iter_test.go b/internal/cmds/iter_test.go new file mode 100644 index 00000000..bf2ecfa3 --- /dev/null +++ b/internal/cmds/iter_test.go @@ -0,0 +1,19 @@ +//go:build go1.23 + +package cmds + +import ( + "maps" + "testing" +) + +func iter0(s Builder) { + s.Hmset().Key("1").FieldValue().FieldValueIter(maps.All(map[string]string{"1": "1"})).Build() + s.Hset().Key("1").FieldValue().FieldValueIter(maps.All(map[string]string{"1": "1"})).Build() + s.Xadd().Key("1").Id("*").FieldValue().FieldValueIter(maps.All(map[string]string{"1": "1"})).Build() +} + +func TestIter(t *testing.T) { + var s = NewBuilder(InitSlot) + t.Run("0", func(t *testing.T) { iter0(s) }) +}