hseq

package
v0.9.2 Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2023 License: MIT Imports: 2 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Assert added in v0.9.0

func Assert[T, A any](t Type[T]) (string, reflect.Kind)

Assert equality of type

func AssertStrict added in v0.9.0

func AssertStrict[T, A any](t Type[T]) (string, reflect.Kind)

Assert strict equality of type

func FMap

func FMap[T, A any](seq Seq[T], f func(Type[T]) A) []A

Transform heterogenous sequence to something else

func FMap1

func FMap1[T, A any](
	ts Seq[T],
	fa func(Type[T]) A,
) A

func FMap2

func FMap2[T, A, B any](
	ts Seq[T],
	fa func(Type[T]) A,
	fb func(Type[T]) B,
) (A, B)

func FMap3

func FMap3[T, A, B, C any](
	ts Seq[T],
	fa func(Type[T]) A,
	fb func(Type[T]) B,
	fc func(Type[T]) C,
) (A, B, C)

func FMap4

func FMap4[T, A, B, C, D any](
	ts Seq[T],
	fa func(Type[T]) A,
	fb func(Type[T]) B,
	fc func(Type[T]) C,
	fd func(Type[T]) D,
) (A, B, C, D)

func FMap5

func FMap5[T, A, B, C, D, E any](
	ts Seq[T],
	fa func(Type[T]) A,
	fb func(Type[T]) B,
	fc func(Type[T]) C,
	fd func(Type[T]) D,
	fe func(Type[T]) E,
) (A, B, C, D, E)

func FMap6

func FMap6[T, A, B, C, D, E, F any](
	ts Seq[T],
	fa func(Type[T]) A,
	fb func(Type[T]) B,
	fc func(Type[T]) C,
	fd func(Type[T]) D,
	fe func(Type[T]) E,
	ff func(Type[T]) F,
) (A, B, C, D, E, F)

func FMap7

func FMap7[T, A, B, C, D, E, F, G any](
	ts Seq[T],
	fa func(Type[T]) A,
	fb func(Type[T]) B,
	fc func(Type[T]) C,
	fd func(Type[T]) D,
	fe func(Type[T]) E,
	ff func(Type[T]) F,
	fg func(Type[T]) G,
) (A, B, C, D, E, F, G)

func FMap8

func FMap8[T, A, B, C, D, E, F, G, H any](
	ts Seq[T],
	fa func(Type[T]) A,
	fb func(Type[T]) B,
	fc func(Type[T]) C,
	fd func(Type[T]) D,
	fe func(Type[T]) E,
	ff func(Type[T]) F,
	fg func(Type[T]) G,
	fh func(Type[T]) H,
) (A, B, C, D, E, F, G, H)

func FMap9

func FMap9[T, A, B, C, D, E, F, G, H, I any](
	ts Seq[T],
	fa func(Type[T]) A,
	fb func(Type[T]) B,
	fc func(Type[T]) C,
	fd func(Type[T]) D,
	fe func(Type[T]) E,
	ff func(Type[T]) F,
	fg func(Type[T]) G,
	fh func(Type[T]) H,
	fi func(Type[T]) I,
) (A, B, C, D, E, F, G, H, I)

Types

type Seq

type Seq[T any] []Type[T]

Heterogenous projection of product type

func New added in v0.9.0

func New[T any](names ...string) Seq[T]

Unfold type T to heterogenous sequence

func New1 added in v0.9.0

func New1[T, A any]() Seq[T]

Unfold type T to heterogenous sequence

func New2 added in v0.9.0

func New2[T, A, B any]() Seq[T]

Unfold type T to heterogenous sequence

func New3 added in v0.9.0

func New3[T, A, B, C any]() Seq[T]

Unfold type T to heterogenous sequence

func New4 added in v0.9.0

func New4[T, A, B, C, D any]() Seq[T]

Unfold type T to heterogenous sequence

func New5 added in v0.9.0

func New5[T, A, B, C, D, E any]() Seq[T]

Unfold type T to heterogenous sequence

func New6 added in v0.9.0

func New6[T, A, B, C, D, E, F any]() Seq[T]

Unfold type T to heterogenous sequence

func New7 added in v0.9.0

func New7[T, A, B, C, D, E, F, G any]() Seq[T]

Unfold type T to heterogenous sequence

func New8 added in v0.9.0

func New8[T, A, B, C, D, E, F, G, H any]() Seq[T]

Unfold type T to heterogenous sequence

func New9 added in v0.9.0

func New9[T, A, B, C, D, E, F, G, H, I any]() Seq[T]

Unfold type T to heterogenous sequence

type Type

type Type[T any] struct {
	reflect.StructField
	PureType reflect.Type

	ID int // TODO: rename to Index
}

Element of product type

func ForName added in v0.9.0

func ForName[T any](seq Seq[T], field string) Type[T]

Lookup type in heterogenous sequence by name of member

func ForType added in v0.9.0

func ForType[A, T any](seq Seq[T]) Type[T]

Lookup type heterogenous sequence by "witness" type

Jump to

Keyboard shortcuts

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