From 295b3ef793ae9c29afbfca9a05b6bf01742daffe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Schw=C3=B6rer?= Date: Wed, 2 Oct 2024 11:31:34 +0200 Subject: [PATCH] v0.0.517 add constructor funcs for tuples --- dataext/tuple.go | 71 ++++++++++++++++++++++++++++++++++++++++++++++++ go.mod | 2 +- go.sum | 2 ++ goextVersion.go | 4 +-- 4 files changed, 76 insertions(+), 3 deletions(-) diff --git a/dataext/tuple.go b/dataext/tuple.go index f2ec353..b8e8d0a 100644 --- a/dataext/tuple.go +++ b/dataext/tuple.go @@ -19,6 +19,14 @@ func (s Single[T1]) TupleValues() []any { return []any{s.V1} } +func NewSingle[T1 any](v1 T1) Single[T1] { + return Single[T1]{V1: v1} +} + +func NewTuple1[T1 any](v1 T1) Single[T1] { + return Single[T1]{V1: v1} +} + // ---------------------------------------------------------------------------- type Tuple[T1 any, T2 any] struct { @@ -34,6 +42,14 @@ func (t Tuple[T1, T2]) TupleValues() []any { return []any{t.V1, t.V2} } +func NewTuple[T1 any, T2 any](v1 T1, v2 T2) Tuple[T1, T2] { + return Tuple[T1, T2]{V1: v1, V2: v2} +} + +func NewTuple2[T1 any, T2 any](v1 T1, v2 T2) Tuple[T1, T2] { + return Tuple[T1, T2]{V1: v1, V2: v2} +} + // ---------------------------------------------------------------------------- type Triple[T1 any, T2 any, T3 any] struct { @@ -50,6 +66,14 @@ func (t Triple[T1, T2, T3]) TupleValues() []any { return []any{t.V1, t.V2, t.V3} } +func NewTriple[T1 any, T2 any, T3 any](v1 T1, v2 T2, v3 T3) Triple[T1, T2, T3] { + return Triple[T1, T2, T3]{V1: v1, V2: v2, V3: v3} +} + +func NewTuple3[T1 any, T2 any, T3 any](v1 T1, v2 T2, v3 T3) Triple[T1, T2, T3] { + return Triple[T1, T2, T3]{V1: v1, V2: v2, V3: v3} +} + // ---------------------------------------------------------------------------- type Quadruple[T1 any, T2 any, T3 any, T4 any] struct { @@ -67,6 +91,14 @@ func (t Quadruple[T1, T2, T3, T4]) TupleValues() []any { return []any{t.V1, t.V2, t.V3, t.V4} } +func NewQuadruple[T1 any, T2 any, T3 any, T4 any](v1 T1, v2 T2, v3 T3, v4 T4) Quadruple[T1, T2, T3, T4] { + return Quadruple[T1, T2, T3, T4]{V1: v1, V2: v2, V3: v3, V4: v4} +} + +func NewTuple4[T1 any, T2 any, T3 any, T4 any](v1 T1, v2 T2, v3 T3, v4 T4) Quadruple[T1, T2, T3, T4] { + return Quadruple[T1, T2, T3, T4]{V1: v1, V2: v2, V3: v3, V4: v4} +} + // ---------------------------------------------------------------------------- type Quintuple[T1 any, T2 any, T3 any, T4 any, T5 any] struct { @@ -86,6 +118,14 @@ func (t Quintuple[T1, T2, T3, T4, T5]) TupleValues() []any { } +func NewQuintuple[T1 any, T2 any, T3 any, T4 any, T5 any](v1 T1, v2 T2, v3 T3, v4 T4, v5 T5) Quintuple[T1, T2, T3, T4, T5] { + return Quintuple[T1, T2, T3, T4, T5]{V1: v1, V2: v2, V3: v3, V4: v4, V5: v5} +} + +func NewTuple5[T1 any, T2 any, T3 any, T4 any, T5 any](v1 T1, v2 T2, v3 T3, v4 T4, v5 T5) Quintuple[T1, T2, T3, T4, T5] { + return Quintuple[T1, T2, T3, T4, T5]{V1: v1, V2: v2, V3: v3, V4: v4, V5: v5} +} + // ---------------------------------------------------------------------------- type Sextuple[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any] struct { @@ -106,6 +146,14 @@ func (t Sextuple[T1, T2, T3, T4, T5, T6]) TupleValues() []any { } +func NewSextuple[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any](v1 T1, v2 T2, v3 T3, v4 T4, v5 T5, v6 T6) Sextuple[T1, T2, T3, T4, T5, T6] { + return Sextuple[T1, T2, T3, T4, T5, T6]{V1: v1, V2: v2, V3: v3, V4: v4, V5: v5, V6: v6} +} + +func NewTuple6[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any](v1 T1, v2 T2, v3 T3, v4 T4, v5 T5, v6 T6) Sextuple[T1, T2, T3, T4, T5, T6] { + return Sextuple[T1, T2, T3, T4, T5, T6]{V1: v1, V2: v2, V3: v3, V4: v4, V5: v5, V6: v6} +} + // ---------------------------------------------------------------------------- type Septuple[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any] struct { @@ -126,6 +174,14 @@ func (t Septuple[T1, T2, T3, T4, T5, T6, T7]) TupleValues() []any { return []any{t.V1, t.V2, t.V3, t.V4, t.V5, t.V6, t.V7} } +func NewSeptuple[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any](v1 T1, v2 T2, v3 T3, v4 T4, v5 T5, v6 T6, v7 T7) Septuple[T1, T2, T3, T4, T5, T6, T7] { + return Septuple[T1, T2, T3, T4, T5, T6, T7]{V1: v1, V2: v2, V3: v3, V4: v4, V5: v5, V6: v6, V7: v7} +} + +func NewTuple7[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any](v1 T1, v2 T2, v3 T3, v4 T4, v5 T5, v6 T6, v7 T7) Septuple[T1, T2, T3, T4, T5, T6, T7] { + return Septuple[T1, T2, T3, T4, T5, T6, T7]{V1: v1, V2: v2, V3: v3, V4: v4, V5: v5, V6: v6, V7: v7} +} + // ---------------------------------------------------------------------------- type Octuple[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any] struct { @@ -147,6 +203,14 @@ func (t Octuple[T1, T2, T3, T4, T5, T6, T7, T8]) TupleValues() []any { return []any{t.V1, t.V2, t.V3, t.V4, t.V5, t.V6, t.V7, t.V8} } +func NewOctuple[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any](v1 T1, v2 T2, v3 T3, v4 T4, v5 T5, v6 T6, v7 T7, v8 T8) Octuple[T1, T2, T3, T4, T5, T6, T7, T8] { + return Octuple[T1, T2, T3, T4, T5, T6, T7, T8]{V1: v1, V2: v2, V3: v3, V4: v4, V5: v5, V6: v6, V7: v7, V8: v8} +} + +func NewTuple8[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any](v1 T1, v2 T2, v3 T3, v4 T4, v5 T5, v6 T6, v7 T7, v8 T8) Octuple[T1, T2, T3, T4, T5, T6, T7, T8] { + return Octuple[T1, T2, T3, T4, T5, T6, T7, T8]{V1: v1, V2: v2, V3: v3, V4: v4, V5: v5, V6: v6, V7: v7, V8: v8} +} + // ---------------------------------------------------------------------------- type Nonuple[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any] struct { @@ -168,3 +232,10 @@ func (t Nonuple[T1, T2, T3, T4, T5, T6, T7, T8, T9]) TupleLength() int { func (t Nonuple[T1, T2, T3, T4, T5, T6, T7, T8, T9]) TupleValues() []any { return []any{t.V1, t.V2, t.V3, t.V4, t.V5, t.V6, t.V7, t.V8, t.V9} } + +func NewNonuple[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any](v1 T1, v2 T2, v3 T3, v4 T4, v5 T5, v6 T6, v7 T7, v8 T8, v9 T9) Nonuple[T1, T2, T3, T4, T5, T6, T7, T8, T9] { + return Nonuple[T1, T2, T3, T4, T5, T6, T7, T8, T9]{V1: v1, V2: v2, V3: v3, V4: v4, V5: v5, V6: v6, V7: v7, V8: v8, V9: v9} +} +func NewTuple9[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any](v1 T1, v2 T2, v3 T3, v4 T4, v5 T5, v6 T6, v7 T7, v8 T8, v9 T9) Nonuple[T1, T2, T3, T4, T5, T6, T7, T8, T9] { + return Nonuple[T1, T2, T3, T4, T5, T6, T7, T8, T9]{V1: v1, V2: v2, V3: v3, V4: v4, V5: v5, V6: v6, V7: v7, V8: v8, V9: v9} +} diff --git a/go.mod b/go.mod index dac5257..c3edc7d 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/jmoiron/sqlx v1.4.0 github.com/rs/xid v1.6.0 github.com/rs/zerolog v1.33.0 - go.mongodb.org/mongo-driver v1.17.0 + go.mongodb.org/mongo-driver v1.17.1 golang.org/x/crypto v0.27.0 golang.org/x/sys v0.25.0 golang.org/x/term v0.24.0 diff --git a/go.sum b/go.sum index fd1ea21..5786c8a 100644 --- a/go.sum +++ b/go.sum @@ -250,6 +250,8 @@ go.mongodb.org/mongo-driver v1.16.1 h1:rIVLL3q0IHM39dvE+z2ulZLp9ENZKThVfuvN/IiN4 go.mongodb.org/mongo-driver v1.16.1/go.mod h1:oB6AhJQvFQL4LEHyXi6aJzQJtBiTQHiAd83l0GdFaiw= go.mongodb.org/mongo-driver v1.17.0 h1:Hp4q2MCjvY19ViwimTs00wHi7G4yzxh4/2+nTx8r40k= go.mongodb.org/mongo-driver v1.17.0/go.mod h1:wwWm/+BuOddhcq3n68LKRmgk2wXzmF6s0SFOa0GINL4= +go.mongodb.org/mongo-driver v1.17.1 h1:Wic5cJIwJgSpBhe3lx3+/RybR5PiYRMpVFgO7cOHyIM= +go.mongodb.org/mongo-driver v1.17.1/go.mod h1:wwWm/+BuOddhcq3n68LKRmgk2wXzmF6s0SFOa0GINL4= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.7.0 h1:pskyeJh/3AmoQ8CPE95vxHLqp1G1GfGNXTmcl9NEKTc= golang.org/x/arch v0.7.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= diff --git a/goextVersion.go b/goextVersion.go index e0b91b5..e435782 100644 --- a/goextVersion.go +++ b/goextVersion.go @@ -1,5 +1,5 @@ package goext -const GoextVersion = "0.0.516" +const GoextVersion = "0.0.517" -const GoextVersionTimestamp = "2024-09-25T21:43:41+0200" +const GoextVersionTimestamp = "2024-10-02T11:31:34+0200"