tuple

package
v0.19.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 4, 2025 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Genric tuples, of size 0 to 9.

Index

Constants

This section is empty.

Variables

View Source
var ErrIndex = errors.New("index error")

Functions

func Slice

func Slice(t Tuple) (result []any)

Types

type Tuple

type Tuple interface {
	// Get the nth element of the tuple
	Get(int) any
	// Return the number of elements in the tuple
	Size() int
	// Return the tuple as a string, formatted (e1,e2,...)
	String() string
	// Tuple of first size-1 elements
	Pre() Tuple
	// Return the last element in the tuple
	Last() any
}

General tuple interface, implemented by all *TupleN types

type Tuple0

type Tuple0 struct{}

func Of0

func Of0() Tuple0

func Unit

func Unit() Tuple0

func (*Tuple0) Get

func (*Tuple0) Get(int) any

func (*Tuple0) Last

func (*Tuple0) Last() any

func (*Tuple0) Pre

func (*Tuple0) Pre() Tuple

func (*Tuple0) Size

func (*Tuple0) Size() int

func (*Tuple0) String

func (t0 *Tuple0) String() string

type Tuple1

type Tuple1[T1 any] struct {
	First T1
}

Tuple of 1 fields

func Of1

func Of1[T1 any](t1 T1) Tuple1[T1]

func (*Tuple1[T1]) Get

func (t1 *Tuple1[T1]) Get(n int) any

func (*Tuple1[T1]) Last

func (t1 *Tuple1[T1]) Last() any

func (*Tuple1[T1]) Pre

func (t1 *Tuple1[T1]) Pre() Tuple

func (*Tuple1[T1]) Return

func (t1 *Tuple1[T1]) Return() T1

Returns the values in the tuple as a sequence of 1 values

func (*Tuple1[T1]) Size

func (*Tuple1[T1]) Size() int

Interface implementation

func (*Tuple1[T1]) String

func (t1 *Tuple1[T1]) String() string

func (Tuple1[T1]) ToRef

func (t1 Tuple1[T1]) ToRef() *Tuple1[T1]

Returns a reference to a copy of this tuple. The reference returned will implement the Tuple interface

func (*Tuple1[T1]) Tuple0 added in v0.16.0

func (t1 *Tuple1[T1]) Tuple0() Tuple0

A type safe implementation of Pre - returns a Tuple0

type Tuple2

type Tuple2[T1 any, T2 any] struct {
	First  T1
	Second T2
}

Tuple of 2 fields

func Of2

func Of2[T1 any, T2 any](t1 T1, t2 T2) Tuple2[T1, T2]

func Pair

func Pair[A any, B any](a A, b B) Tuple2[A, B]

func (*Tuple2[T1, T2]) Get

func (t2 *Tuple2[T1, T2]) Get(n int) any

func (*Tuple2[T1, T2]) Last

func (t2 *Tuple2[T1, T2]) Last() any

func (*Tuple2[T1, T2]) Pre

func (t2 *Tuple2[T1, T2]) Pre() Tuple

func (*Tuple2[T1, T2]) Return

func (t2 *Tuple2[T1, T2]) Return() (T1, T2)

Returns the values in the tuple as a sequence of 2 values

func (*Tuple2[T1, T2]) Size

func (*Tuple2[T1, T2]) Size() int

Interface implementation

func (*Tuple2[T1, T2]) String

func (t2 *Tuple2[T1, T2]) String() string

func (Tuple2[T1, T2]) ToRef

func (t2 Tuple2[T1, T2]) ToRef() *Tuple2[T1, T2]

Returns a reference to a copy of this tuple. The reference returned will implement the Tuple interface

func (*Tuple2[T1, T2]) Tuple1 added in v0.16.0

func (t2 *Tuple2[T1, T2]) Tuple1() Tuple1[T1]

A type safe implementation of Pre - returns a Tuple1 consisting of the first element of this tuple

type Tuple3

type Tuple3[T1 any, T2 any, T3 any] struct {
	First  T1
	Second T2
	Third  T3
}

Tuple of 3 fields

func Of3

func Of3[T1 any, T2 any, T3 any](t1 T1, t2 T2, t3 T3) Tuple3[T1, T2, T3]

func (*Tuple3[T1, T2, T3]) Get

func (t3 *Tuple3[T1, T2, T3]) Get(n int) any

func (*Tuple3[T1, T2, T3]) Last

func (t3 *Tuple3[T1, T2, T3]) Last() any

func (*Tuple3[T1, T2, T3]) Pre

func (t3 *Tuple3[T1, T2, T3]) Pre() Tuple

func (*Tuple3[T1, T2, T3]) Return

func (t3 *Tuple3[T1, T2, T3]) Return() (T1, T2, T3)

Returns the values in the tuple as a sequence of 3 values

func (*Tuple3[T1, T2, T3]) Size

func (*Tuple3[T1, T2, T3]) Size() int

Interface implementation

func (*Tuple3[T1, T2, T3]) String

func (t3 *Tuple3[T1, T2, T3]) String() string

func (Tuple3[T1, T2, T3]) ToRef

func (t3 Tuple3[T1, T2, T3]) ToRef() *Tuple3[T1, T2, T3]

Returns a reference to a copy of this tuple. The reference returned will implement the Tuple interface

func (*Tuple3[T1, T2, T3]) Tuple2 added in v0.16.0

func (t3 *Tuple3[T1, T2, T3]) Tuple2() Tuple2[T1, T2]

A type safe implementation of Pre - returns a Tuple2 consisting of the first 2 elements of this tuple

type Tuple4

type Tuple4[T1 any, T2 any, T3 any, T4 any] struct {
	First  T1
	Second T2
	Third  T3
	Forth  T4
}

Tuple of 4 fields

func Of4

func Of4[T1 any, T2 any, T3 any, T4 any](t1 T1, t2 T2, t3 T3, t4 T4) Tuple4[T1, T2, T3, T4]

func (*Tuple4[T1, T2, T3, T4]) Get

func (t4 *Tuple4[T1, T2, T3, T4]) Get(n int) any

func (*Tuple4[T1, T2, T3, T4]) Last

func (t4 *Tuple4[T1, T2, T3, T4]) Last() any

func (*Tuple4[T1, T2, T3, T4]) Pre

func (t4 *Tuple4[T1, T2, T3, T4]) Pre() Tuple

func (*Tuple4[T1, T2, T3, T4]) Return

func (t4 *Tuple4[T1, T2, T3, T4]) Return() (T1, T2, T3, T4)

Returns the values in the tuple as a sequence of 4 values

func (*Tuple4[T1, T2, T3, T4]) Size

func (*Tuple4[T1, T2, T3, T4]) Size() int

Interface implementation

func (*Tuple4[T1, T2, T3, T4]) String

func (t4 *Tuple4[T1, T2, T3, T4]) String() string

func (Tuple4[T1, T2, T3, T4]) ToRef

func (t4 Tuple4[T1, T2, T3, T4]) ToRef() *Tuple4[T1, T2, T3, T4]

Returns a reference to a copy of this tuple. The reference returned will implement the Tuple interface

func (*Tuple4[T1, T2, T3, T4]) Tuple3 added in v0.16.0

func (t4 *Tuple4[T1, T2, T3, T4]) Tuple3() Tuple3[T1, T2, T3]

A type safe implementation of Pre - returns a Tuple3 consisting of the first 3 elements of this tuple

type Tuple5

type Tuple5[T1 any, T2 any, T3 any, T4 any, T5 any] struct {
	First  T1
	Second T2
	Third  T3
	Forth  T4
	Fifth  T5
}

Tuple of 5 fields

func Of5

func Of5[T1 any, T2 any, T3 any, T4 any, T5 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5) Tuple5[T1, T2, T3, T4, T5]

func (*Tuple5[T1, T2, T3, T4, T5]) Get

func (t5 *Tuple5[T1, T2, T3, T4, T5]) Get(n int) any

func (*Tuple5[T1, T2, T3, T4, T5]) Last

func (t5 *Tuple5[T1, T2, T3, T4, T5]) Last() any

func (*Tuple5[T1, T2, T3, T4, T5]) Pre

func (t5 *Tuple5[T1, T2, T3, T4, T5]) Pre() Tuple

func (*Tuple5[T1, T2, T3, T4, T5]) Return

func (t5 *Tuple5[T1, T2, T3, T4, T5]) Return() (T1, T2, T3, T4, T5)

Returns the values in the tuple as a sequence of 5 values

func (*Tuple5[T1, T2, T3, T4, T5]) Size

func (*Tuple5[T1, T2, T3, T4, T5]) Size() int

Interface implementation

func (*Tuple5[T1, T2, T3, T4, T5]) String

func (t5 *Tuple5[T1, T2, T3, T4, T5]) String() string

func (Tuple5[T1, T2, T3, T4, T5]) ToRef

func (t5 Tuple5[T1, T2, T3, T4, T5]) ToRef() *Tuple5[T1, T2, T3, T4, T5]

Returns a reference to a copy of this tuple. The reference returned will implement the Tuple interface

func (*Tuple5[T1, T2, T3, T4, T5]) Tuple4 added in v0.16.0

func (t5 *Tuple5[T1, T2, T3, T4, T5]) Tuple4() Tuple4[T1, T2, T3, T4]

A type safe implementation of Pre - returns a Tuple4 consisting of the first 4 elements of this tuple

type Tuple6

type Tuple6[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any] struct {
	First  T1
	Second T2
	Third  T3
	Forth  T4
	Fifth  T5
	Sixth  T6
}

Tuple of 6 fields

func Of6

func Of6[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6) Tuple6[T1, T2, T3, T4, T5, T6]

func (*Tuple6[T1, T2, T3, T4, T5, T6]) Get

func (t6 *Tuple6[T1, T2, T3, T4, T5, T6]) Get(n int) any

func (*Tuple6[T1, T2, T3, T4, T5, T6]) Last

func (t6 *Tuple6[T1, T2, T3, T4, T5, T6]) Last() any

func (*Tuple6[T1, T2, T3, T4, T5, T6]) Pre

func (t6 *Tuple6[T1, T2, T3, T4, T5, T6]) Pre() Tuple

func (*Tuple6[T1, T2, T3, T4, T5, T6]) Return

func (t6 *Tuple6[T1, T2, T3, T4, T5, T6]) Return() (T1, T2, T3, T4, T5, T6)

Returns the values in the tuple as a sequence of 6 values

func (*Tuple6[T1, T2, T3, T4, T5, T6]) Size

func (*Tuple6[T1, T2, T3, T4, T5, T6]) Size() int

Interface implementation

func (*Tuple6[T1, T2, T3, T4, T5, T6]) String

func (t6 *Tuple6[T1, T2, T3, T4, T5, T6]) String() string

func (Tuple6[T1, T2, T3, T4, T5, T6]) ToRef

func (t6 Tuple6[T1, T2, T3, T4, T5, T6]) ToRef() *Tuple6[T1, T2, T3, T4, T5, T6]

Returns a reference to a copy of this tuple. The reference returned will implement the Tuple interface

func (*Tuple6[T1, T2, T3, T4, T5, T6]) Tuple5 added in v0.16.0

func (t6 *Tuple6[T1, T2, T3, T4, T5, T6]) Tuple5() Tuple5[T1, T2, T3, T4, T5]

A type safe implementation of Pre - returns a Tuple5 consisting of the first 5 elements of this tuple

type Tuple7

type Tuple7[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any] struct {
	First   T1
	Second  T2
	Third   T3
	Forth   T4
	Fifth   T5
	Sixth   T6
	Seventh T7
}

Tuple of 7 fields

func Of7

func Of7[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7) Tuple7[T1, T2, T3, T4, T5, T6, T7]

func (*Tuple7[T1, T2, T3, T4, T5, T6, T7]) Get

func (t7 *Tuple7[T1, T2, T3, T4, T5, T6, T7]) Get(n int) any

func (*Tuple7[T1, T2, T3, T4, T5, T6, T7]) Last

func (t7 *Tuple7[T1, T2, T3, T4, T5, T6, T7]) Last() any

func (*Tuple7[T1, T2, T3, T4, T5, T6, T7]) Pre

func (t7 *Tuple7[T1, T2, T3, T4, T5, T6, T7]) Pre() Tuple

func (*Tuple7[T1, T2, T3, T4, T5, T6, T7]) Return

func (t7 *Tuple7[T1, T2, T3, T4, T5, T6, T7]) Return() (T1, T2, T3, T4, T5, T6, T7)

Returns the values in the tuple as a sequence of 7 values

func (*Tuple7[T1, T2, T3, T4, T5, T6, T7]) Size

func (*Tuple7[T1, T2, T3, T4, T5, T6, T7]) Size() int

Interface implementation

func (*Tuple7[T1, T2, T3, T4, T5, T6, T7]) String

func (t7 *Tuple7[T1, T2, T3, T4, T5, T6, T7]) String() string

func (Tuple7[T1, T2, T3, T4, T5, T6, T7]) ToRef

func (t7 Tuple7[T1, T2, T3, T4, T5, T6, T7]) ToRef() *Tuple7[T1, T2, T3, T4, T5, T6, T7]

Returns a reference to a copy of this tuple. The reference returned will implement the Tuple interface

func (*Tuple7[T1, T2, T3, T4, T5, T6, T7]) Tuple6 added in v0.16.0

func (t7 *Tuple7[T1, T2, T3, T4, T5, T6, T7]) Tuple6() Tuple6[T1, T2, T3, T4, T5, T6]

A type safe implementation of Pre - returns a Tuple6 consisting of the first 6 elements of this tuple

type Tuple8

type Tuple8[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any] struct {
	First   T1
	Second  T2
	Third   T3
	Forth   T4
	Fifth   T5
	Sixth   T6
	Seventh T7
	Eighth  T8
}

Tuple of 8 fields

func Of8

func Of8[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8) Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]

func (*Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) Get

func (t8 *Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) Get(n int) any

func (*Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) Last

func (t8 *Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) Last() any

func (*Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) Pre

func (t8 *Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) Pre() Tuple

func (*Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) Return

func (t8 *Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) Return() (T1, T2, T3, T4, T5, T6, T7, T8)

Returns the values in the tuple as a sequence of 8 values

func (*Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) Size

func (*Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) Size() int

Interface implementation

func (*Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) String

func (t8 *Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) String() string

func (Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) ToRef

func (t8 Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) ToRef() *Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]

Returns a reference to a copy of this tuple. The reference returned will implement the Tuple interface

func (*Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) Tuple7 added in v0.16.0

func (t8 *Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) Tuple7() Tuple7[T1, T2, T3, T4, T5, T6, T7]

A type safe implementation of Pre - returns a Tuple7 consisting of the first 7 elements of this tuple

type Tuple9

type Tuple9[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any] struct {
	First   T1
	Second  T2
	Third   T3
	Forth   T4
	Fifth   T5
	Sixth   T6
	Seventh T7
	Eighth  T8
	Ninth   T9
}

Tuple of 9 fields

func Of9

func Of9[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8, t9 T9) Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]

func (*Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) Get

func (t9 *Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) Get(n int) any

func (*Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) Last

func (t9 *Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) Last() any

func (*Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) Pre

func (t9 *Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) Pre() Tuple

func (*Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) Return

func (t9 *Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) Return() (T1, T2, T3, T4, T5, T6, T7, T8, T9)

Returns the values in the tuple as a sequence of 9 values

func (*Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) Size

func (*Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) Size() int

Interface implementation

func (*Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) String

func (t9 *Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) String() string

func (Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) ToRef

func (t9 Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) ToRef() *Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]

Returns a reference to a copy of this tuple. The reference returned will implement the Tuple interface

func (*Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) Tuple8 added in v0.16.0

func (t9 *Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) Tuple8() Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]

A type safe implementation of Pre - returns a Tuple8 consisting of the first 8 elements of this tuple

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL