hide tuple fields, only expose tuple.TN(...) and tuple.Get()
This commit is contained in:
@@ -1,40 +1,40 @@
|
|||||||
package tuple
|
package tuple
|
||||||
|
|
||||||
type Tuple[T any] struct {
|
type Tuple[T any] struct {
|
||||||
V T
|
v T
|
||||||
}
|
}
|
||||||
|
|
||||||
func T[T any](v T) Tuple[T] {
|
func T[T any](v T) Tuple[T] {
|
||||||
return Tuple[T]{V: v}
|
return Tuple[T]{v: v}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t Tuple[T]) Get() T {
|
func (t Tuple[T]) Get() T {
|
||||||
return t.V
|
return t.v
|
||||||
}
|
}
|
||||||
|
|
||||||
type Tuple2[T1 any, T2 any] struct {
|
type Tuple2[T1 any, T2 any] struct {
|
||||||
V1 T1
|
v1 T1
|
||||||
V2 T2
|
v2 T2
|
||||||
}
|
}
|
||||||
|
|
||||||
func T2[T1 any, T2 any](v1 T1, v2 T2) Tuple2[T1, T2] {
|
func T2[T1 any, T2 any](v1 T1, v2 T2) Tuple2[T1, T2] {
|
||||||
return Tuple2[T1, T2]{V1: v1, V2: v2}
|
return Tuple2[T1, T2]{v1: v1, v2: v2}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t Tuple2[T1, T2]) Get() (T1, T2) {
|
func (t Tuple2[T1, T2]) Get() (T1, T2) {
|
||||||
return t.V1, t.V2
|
return t.v1, t.v2
|
||||||
}
|
}
|
||||||
|
|
||||||
type Tuple3[T1 any, T2 any, T3 any] struct {
|
type Tuple3[T1 any, T2 any, T3 any] struct {
|
||||||
V1 T1
|
v1 T1
|
||||||
V2 T2
|
v2 T2
|
||||||
V3 T3
|
v3 T3
|
||||||
}
|
}
|
||||||
|
|
||||||
func T3[T1 any, T2 any, T3 any](v1 T1, v2 T2, v3 T3) Tuple3[T1, T2, T3] {
|
func T3[T1 any, T2 any, T3 any](v1 T1, v2 T2, v3 T3) Tuple3[T1, T2, T3] {
|
||||||
return Tuple3[T1, T2, T3]{V1: v1, V2: v2, V3: v3}
|
return Tuple3[T1, T2, T3]{v1: v1, v2: v2, v3: v3}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t Tuple3[T1, T2, T3]) Get() (T1, T2, T3) {
|
func (t Tuple3[T1, T2, T3]) Get() (T1, T2, T3) {
|
||||||
return t.V1, t.V2, t.V3
|
return t.v1, t.v2, t.v3
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user