Files
llgo/x/tuple/tuple.go

41 lines
636 B
Go
Raw Normal View History

2024-09-03 15:58:34 +08:00
package tuple
type Tuple[T any] struct {
v T
2024-09-03 15:58:34 +08:00
}
func T[T any](v T) Tuple[T] {
return Tuple[T]{v: v}
2024-09-03 15:58:34 +08:00
}
func (t Tuple[T]) Get() T {
return t.v
2024-09-03 15:58:34 +08:00
}
type Tuple2[T1 any, T2 any] struct {
v1 T1
v2 T2
2024-09-03 15:58:34 +08:00
}
func T2[T1 any, T2 any](v1 T1, v2 T2) Tuple2[T1, T2] {
return Tuple2[T1, T2]{v1: v1, v2: v2}
2024-09-03 15:58:34 +08:00
}
func (t Tuple2[T1, T2]) Get() (T1, T2) {
return t.v1, t.v2
2024-09-03 15:58:34 +08:00
}
type Tuple3[T1 any, T2 any, T3 any] struct {
v1 T1
v2 T2
v3 T3
2024-09-03 15:58:34 +08:00
}
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}
2024-09-03 15:58:34 +08:00
}
func (t Tuple3[T1, T2, T3]) Get() (T1, T2, T3) {
return t.v1, t.v2, t.v3
2024-09-03 15:58:34 +08:00
}