xx

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Dec 28, 2022 License: MIT Imports: 8 Imported by: 0

README

xx

Go Reference golang

core language extension for Golang

Donation

View https://guoyk.xyz/donation

Credits

Guo Y.K., MIT License

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Extract

func Extract[T any](ctx context.Context, keys ...string) (out T, ok bool)

func Guard

func Guard(err *error)

Guard recover from panic and set err

func Ign

func Ign(err *error, fns ...F11[error, bool]) error

Ign set err to nil if one of fn returns true

func Inject

func Inject[T any](ctx context.Context, v T, keys ...string) context.Context

func InjectKey

func InjectKey[T any](v T, keys ...string) any

func MapKeys

func MapKeys[T comparable, U any](m map[T]U) []T

MapKeys extract keys of map

func MapVals

func MapVals[T comparable, U any](m map[T]U) []U

MapVals extract values of map

func Must

func Must[T any](v T, err error) T

Must alias to Must1

func Must0

func Must0(err error)

Must0 panic err if not nil

func Must1

func Must1[T any](v T, err error) T

Must1 panic err if not nil, else return remaining values

func Must2

func Must2[T1 any, T2 any](v1 T1, v2 T2, err error) (T1, T2)

Must2 panic err if not nil, else return remaining values

func Must3

func Must3[T1 any, T2 any, T3 any](v1 T1, v2 T2, v3 T3, err error) (T1, T2, T3)

Must3 panic err if not nil, else return remaining values

func Must4

func Must4[T1 any, T2 any, T3 any, T4 any](v1 T1, v2 T2, v3 T3, v4 T4, err error) (T1, T2, T3, T4)

Must4 panic err if not nil, else return remaining values

func Must5

func Must5[T1 any, T2 any, T3 any, T4 any, T5 any](v1 T1, v2 T2, v3 T3, v4 T4, v5 T5, err error) (T1, T2, T3, T4, T5)

Must5 panic err if not nil, else return remaining values

func Must6

func Must6[T1 any, T2 any, T3 any, T4 any, T5 any, T6 any](v1 T1, v2 T2, v3 T3, v4 T4, v5 T5, v6 T6, err error) (T1, T2, T3, T4, T5, T6)

Must6 panic err if not nil, else return remaining values

func Must7

func Must7[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, err error) (T1, T2, T3, T4, T5, T6, T7)

Must7 panic err if not nil, else return remaining values

func MustCtx

func MustCtx(ctx context.Context)

MustCtx panic ctx.Err() if not nil

func Ptr

func Ptr[T any](v T) *T

Ptr create a pointer to a value

func Repeat

func Repeat[T any](n int, v T) []T

Repeat create a slice with a value repeated n times

func SliceFilter

func SliceFilter[T any](s []T, fn F11[T, bool]) []T

SliceFilter returns a new slice with element filtered

func SliceFlatten

func SliceFlatten[T any](s [][]T) []T

SliceFlatten flatten a slice of slice

func SliceMap

func SliceMap[T any, U any](s []T, fn F11[T, U]) []U

SliceMap convert a slice to another by mapping each element

func SliceToMap

func SliceToMap[T comparable](s []T) map[T]T

SliceToMap convert a slice to map with key-values

func SliceToSet

func SliceToSet[T comparable](s []T) map[T]struct{}

SliceToSet convert a slice of comparables into a SliceToSet-like map

Types

type D00

type D00 interface {
	Do()
}

D00 interface with a single method with 0 argument(s) and 0 return(s)

type D01

type D01[O1 any] interface {
	Do() (o1 O1)
}

D01 interface with a single method with 0 argument(s) and 1 return(s)

type D02

type D02[O1 any, O2 any] interface {
	Do() (o1 O1, o2 O2)
}

D02 interface with a single method with 0 argument(s) and 2 return(s)

type D03

type D03[O1 any, O2 any, O3 any] interface {
	Do() (o1 O1, o2 O2, o3 O3)
}

D03 interface with a single method with 0 argument(s) and 3 return(s)

type D04

type D04[O1 any, O2 any, O3 any, O4 any] interface {
	Do() (o1 O1, o2 O2, o3 O3, o4 O4)
}

D04 interface with a single method with 0 argument(s) and 4 return(s)

type D10

type D10[I1 any] interface {
	Do(i1 I1)
}

D10 interface with a single method with 1 argument(s) and 0 return(s)

type D11

type D11[I1 any, O1 any] interface {
	Do(i1 I1) (o1 O1)
}

D11 interface with a single method with 1 argument(s) and 1 return(s)

type D12

type D12[I1 any, O1 any, O2 any] interface {
	Do(i1 I1) (o1 O1, o2 O2)
}

D12 interface with a single method with 1 argument(s) and 2 return(s)

type D13

type D13[I1 any, O1 any, O2 any, O3 any] interface {
	Do(i1 I1) (o1 O1, o2 O2, o3 O3)
}

D13 interface with a single method with 1 argument(s) and 3 return(s)

type D14

type D14[I1 any, O1 any, O2 any, O3 any, O4 any] interface {
	Do(i1 I1) (o1 O1, o2 O2, o3 O3, o4 O4)
}

D14 interface with a single method with 1 argument(s) and 4 return(s)

type D20

type D20[I1 any, I2 any] interface {
	Do(i1 I1, i2 I2)
}

D20 interface with a single method with 2 argument(s) and 0 return(s)

type D21

type D21[I1 any, I2 any, O1 any] interface {
	Do(i1 I1, i2 I2) (o1 O1)
}

D21 interface with a single method with 2 argument(s) and 1 return(s)

type D22

type D22[I1 any, I2 any, O1 any, O2 any] interface {
	Do(i1 I1, i2 I2) (o1 O1, o2 O2)
}

D22 interface with a single method with 2 argument(s) and 2 return(s)

type D23

type D23[I1 any, I2 any, O1 any, O2 any, O3 any] interface {
	Do(i1 I1, i2 I2) (o1 O1, o2 O2, o3 O3)
}

D23 interface with a single method with 2 argument(s) and 3 return(s)

type D24

type D24[I1 any, I2 any, O1 any, O2 any, O3 any, O4 any] interface {
	Do(i1 I1, i2 I2) (o1 O1, o2 O2, o3 O3, o4 O4)
}

D24 interface with a single method with 2 argument(s) and 4 return(s)

type D30

type D30[I1 any, I2 any, I3 any] interface {
	Do(i1 I1, i2 I2, i3 I3)
}

D30 interface with a single method with 3 argument(s) and 0 return(s)

type D31

type D31[I1 any, I2 any, I3 any, O1 any] interface {
	Do(i1 I1, i2 I2, i3 I3) (o1 O1)
}

D31 interface with a single method with 3 argument(s) and 1 return(s)

type D32

type D32[I1 any, I2 any, I3 any, O1 any, O2 any] interface {
	Do(i1 I1, i2 I2, i3 I3) (o1 O1, o2 O2)
}

D32 interface with a single method with 3 argument(s) and 2 return(s)

type D33

type D33[I1 any, I2 any, I3 any, O1 any, O2 any, O3 any] interface {
	Do(i1 I1, i2 I2, i3 I3) (o1 O1, o2 O2, o3 O3)
}

D33 interface with a single method with 3 argument(s) and 3 return(s)

type D34

type D34[I1 any, I2 any, I3 any, O1 any, O2 any, O3 any, O4 any] interface {
	Do(i1 I1, i2 I2, i3 I3) (o1 O1, o2 O2, o3 O3, o4 O4)
}

D34 interface with a single method with 3 argument(s) and 4 return(s)

type D40

type D40[I1 any, I2 any, I3 any, I4 any] interface {
	Do(i1 I1, i2 I2, i3 I3, i4 I4)
}

D40 interface with a single method with 4 argument(s) and 0 return(s)

type D41

type D41[I1 any, I2 any, I3 any, I4 any, O1 any] interface {
	Do(i1 I1, i2 I2, i3 I3, i4 I4) (o1 O1)
}

D41 interface with a single method with 4 argument(s) and 1 return(s)

type D42

type D42[I1 any, I2 any, I3 any, I4 any, O1 any, O2 any] interface {
	Do(i1 I1, i2 I2, i3 I3, i4 I4) (o1 O1, o2 O2)
}

D42 interface with a single method with 4 argument(s) and 2 return(s)

type D43

type D43[I1 any, I2 any, I3 any, I4 any, O1 any, O2 any, O3 any] interface {
	Do(i1 I1, i2 I2, i3 I3, i4 I4) (o1 O1, o2 O2, o3 O3)
}

D43 interface with a single method with 4 argument(s) and 3 return(s)

type D44

type D44[I1 any, I2 any, I3 any, I4 any, O1 any, O2 any, O3 any, O4 any] interface {
	Do(i1 I1, i2 I2, i3 I3, i4 I4) (o1 O1, o2 O2, o3 O3, o4 O4)
}

D44 interface with a single method with 4 argument(s) and 4 return(s)

type ErrorGroup

type ErrorGroup interface {
	Add(err error)
	Set(i int, err error)
	Unwrap() error
}

func NewErrorGroup

func NewErrorGroup() ErrorGroup

type Errors

type Errors []error

func (Errors) Error

func (errs Errors) Error() string

type F00

type F00 func()

F00 function with 0 argument(s) and 0 return(s)

func (F00) Do

func (f F00) Do()

type F01

type F01[O1 any] func() (o1 O1)

F01 function with 0 argument(s) and 1 return(s)

func (F01[O1]) Do

func (f F01[O1]) Do() (o1 O1)

type F02

type F02[O1 any, O2 any] func() (o1 O1, o2 O2)

F02 function with 0 argument(s) and 2 return(s)

func (F02[O1, O2]) Do

func (f F02[O1, O2]) Do() (o1 O1, o2 O2)

type F03

type F03[O1 any, O2 any, O3 any] func() (o1 O1, o2 O2, o3 O3)

F03 function with 0 argument(s) and 3 return(s)

func (F03[O1, O2, O3]) Do

func (f F03[O1, O2, O3]) Do() (o1 O1, o2 O2, o3 O3)

type F04

type F04[O1 any, O2 any, O3 any, O4 any] func() (o1 O1, o2 O2, o3 O3, o4 O4)

F04 function with 0 argument(s) and 4 return(s)

func (F04[O1, O2, O3, O4]) Do

func (f F04[O1, O2, O3, O4]) Do() (o1 O1, o2 O2, o3 O3, o4 O4)

type F10

type F10[I1 any] func(i1 I1)

F10 function with 1 argument(s) and 0 return(s)

func GF10

func GF10[I1 any](f func(i1 any)) F10[I1]

GF10 generalize a function with argument type any to generic

func (F10[I1]) Do

func (f F10[I1]) Do(i1 I1)

type F11

type F11[I1 any, O1 any] func(i1 I1) (o1 O1)

F11 function with 1 argument(s) and 1 return(s)

func And

func And[T any](m ...F11[T, bool]) F11[T, bool]

And returns a new matcher returns true if only all children returns true

func Compare

func Compare[T any](v any, tok token.Token) F11[T, bool]

Compare create a Matcher compares a value with a token

func Eq

func Eq[T any](v T) F11[T, bool]

Eq returns a F11[T,bool] that returns true if incoming value is same

func GF11

func GF11[I1 any, O1 any](f func(i1 any) (o1 O1)) F11[I1, O1]

GF11 generalize a function with argument type any to generic

func Gt

func Gt[T any](v T) F11[T, bool]

Gt returns a func that returns true if incoming values is greater

func Gte

func Gte[T any](v T) F11[T, bool]

Gte returns a func that returns true if incoming values is greater or equal

func Lt

func Lt[T any](v T) F11[T, bool]

Lt returns a func that returns true if incoming values is less

func Lte

func Lte[T any](v T) F11[T, bool]

Lte returns a func that returns true if incoming values is less or equal

func Neq

func Neq[T any](v T) F11[T, bool]

Neq returns a func that returns true if incoming value is not same

func Not

func Not[T any](m ...F11[T, bool]) F11[T, bool]

Not returns a new matcher returns true if none of children returns true

func Or

func Or[T any](m ...F11[T, bool]) F11[T, bool]

Or returns a new matcher returns true if any of children returns true

func (F11[I1, O1]) Do

func (f F11[I1, O1]) Do(i1 I1) (o1 O1)

type F12

type F12[I1 any, O1 any, O2 any] func(i1 I1) (o1 O1, o2 O2)

F12 function with 1 argument(s) and 2 return(s)

func GF12

func GF12[I1 any, O1 any, O2 any](f func(i1 any) (o1 O1, o2 O2)) F12[I1, O1, O2]

GF12 generalize a function with argument type any to generic

func (F12[I1, O1, O2]) Do

func (f F12[I1, O1, O2]) Do(i1 I1) (o1 O1, o2 O2)

type F13

type F13[I1 any, O1 any, O2 any, O3 any] func(i1 I1) (o1 O1, o2 O2, o3 O3)

F13 function with 1 argument(s) and 3 return(s)

func GF13

func GF13[I1 any, O1 any, O2 any, O3 any](f func(i1 any) (o1 O1, o2 O2, o3 O3)) F13[I1, O1, O2, O3]

GF13 generalize a function with argument type any to generic

func (F13[I1, O1, O2, O3]) Do

func (f F13[I1, O1, O2, O3]) Do(i1 I1) (o1 O1, o2 O2, o3 O3)

type F14

type F14[I1 any, O1 any, O2 any, O3 any, O4 any] func(i1 I1) (o1 O1, o2 O2, o3 O3, o4 O4)

F14 function with 1 argument(s) and 4 return(s)

func GF14

func GF14[I1 any, O1 any, O2 any, O3 any, O4 any](f func(i1 any) (o1 O1, o2 O2, o3 O3, o4 O4)) F14[I1, O1, O2, O3, O4]

GF14 generalize a function with argument type any to generic

func (F14[I1, O1, O2, O3, O4]) Do

func (f F14[I1, O1, O2, O3, O4]) Do(i1 I1) (o1 O1, o2 O2, o3 O3, o4 O4)

type F20

type F20[I1 any, I2 any] func(i1 I1, i2 I2)

F20 function with 2 argument(s) and 0 return(s)

func GF20

func GF20[I1 any, I2 any](f func(i1 any, i2 any)) F20[I1, I2]

GF20 generalize a function with argument type any to generic

func (F20[I1, I2]) Do

func (f F20[I1, I2]) Do(i1 I1, i2 I2)

type F21

type F21[I1 any, I2 any, O1 any] func(i1 I1, i2 I2) (o1 O1)

F21 function with 2 argument(s) and 1 return(s)

func GF21

func GF21[I1 any, I2 any, O1 any](f func(i1 any, i2 any) (o1 O1)) F21[I1, I2, O1]

GF21 generalize a function with argument type any to generic

func (F21[I1, I2, O1]) Do

func (f F21[I1, I2, O1]) Do(i1 I1, i2 I2) (o1 O1)

type F22

type F22[I1 any, I2 any, O1 any, O2 any] func(i1 I1, i2 I2) (o1 O1, o2 O2)

F22 function with 2 argument(s) and 2 return(s)

func GF22

func GF22[I1 any, I2 any, O1 any, O2 any](f func(i1 any, i2 any) (o1 O1, o2 O2)) F22[I1, I2, O1, O2]

GF22 generalize a function with argument type any to generic

func (F22[I1, I2, O1, O2]) Do

func (f F22[I1, I2, O1, O2]) Do(i1 I1, i2 I2) (o1 O1, o2 O2)

type F23

type F23[I1 any, I2 any, O1 any, O2 any, O3 any] func(i1 I1, i2 I2) (o1 O1, o2 O2, o3 O3)

F23 function with 2 argument(s) and 3 return(s)

func GF23

func GF23[I1 any, I2 any, O1 any, O2 any, O3 any](f func(i1 any, i2 any) (o1 O1, o2 O2, o3 O3)) F23[I1, I2, O1, O2, O3]

GF23 generalize a function with argument type any to generic

func (F23[I1, I2, O1, O2, O3]) Do

func (f F23[I1, I2, O1, O2, O3]) Do(i1 I1, i2 I2) (o1 O1, o2 O2, o3 O3)

type F24

type F24[I1 any, I2 any, O1 any, O2 any, O3 any, O4 any] func(i1 I1, i2 I2) (o1 O1, o2 O2, o3 O3, o4 O4)

F24 function with 2 argument(s) and 4 return(s)

func GF24

func GF24[I1 any, I2 any, O1 any, O2 any, O3 any, O4 any](f func(i1 any, i2 any) (o1 O1, o2 O2, o3 O3, o4 O4)) F24[I1, I2, O1, O2, O3, O4]

GF24 generalize a function with argument type any to generic

func (F24[I1, I2, O1, O2, O3, O4]) Do

func (f F24[I1, I2, O1, O2, O3, O4]) Do(i1 I1, i2 I2) (o1 O1, o2 O2, o3 O3, o4 O4)

type F30

type F30[I1 any, I2 any, I3 any] func(i1 I1, i2 I2, i3 I3)

F30 function with 3 argument(s) and 0 return(s)

func GF30

func GF30[I1 any, I2 any, I3 any](f func(i1 any, i2 any, i3 any)) F30[I1, I2, I3]

GF30 generalize a function with argument type any to generic

func (F30[I1, I2, I3]) Do

func (f F30[I1, I2, I3]) Do(i1 I1, i2 I2, i3 I3)

type F31

type F31[I1 any, I2 any, I3 any, O1 any] func(i1 I1, i2 I2, i3 I3) (o1 O1)

F31 function with 3 argument(s) and 1 return(s)

func GF31

func GF31[I1 any, I2 any, I3 any, O1 any](f func(i1 any, i2 any, i3 any) (o1 O1)) F31[I1, I2, I3, O1]

GF31 generalize a function with argument type any to generic

func (F31[I1, I2, I3, O1]) Do

func (f F31[I1, I2, I3, O1]) Do(i1 I1, i2 I2, i3 I3) (o1 O1)

type F32

type F32[I1 any, I2 any, I3 any, O1 any, O2 any] func(i1 I1, i2 I2, i3 I3) (o1 O1, o2 O2)

F32 function with 3 argument(s) and 2 return(s)

func GF32

func GF32[I1 any, I2 any, I3 any, O1 any, O2 any](f func(i1 any, i2 any, i3 any) (o1 O1, o2 O2)) F32[I1, I2, I3, O1, O2]

GF32 generalize a function with argument type any to generic

func (F32[I1, I2, I3, O1, O2]) Do

func (f F32[I1, I2, I3, O1, O2]) Do(i1 I1, i2 I2, i3 I3) (o1 O1, o2 O2)

type F33

type F33[I1 any, I2 any, I3 any, O1 any, O2 any, O3 any] func(i1 I1, i2 I2, i3 I3) (o1 O1, o2 O2, o3 O3)

F33 function with 3 argument(s) and 3 return(s)

func GF33

func GF33[I1 any, I2 any, I3 any, O1 any, O2 any, O3 any](f func(i1 any, i2 any, i3 any) (o1 O1, o2 O2, o3 O3)) F33[I1, I2, I3, O1, O2, O3]

GF33 generalize a function with argument type any to generic

func (F33[I1, I2, I3, O1, O2, O3]) Do

func (f F33[I1, I2, I3, O1, O2, O3]) Do(i1 I1, i2 I2, i3 I3) (o1 O1, o2 O2, o3 O3)

type F34

type F34[I1 any, I2 any, I3 any, O1 any, O2 any, O3 any, O4 any] func(i1 I1, i2 I2, i3 I3) (o1 O1, o2 O2, o3 O3, o4 O4)

F34 function with 3 argument(s) and 4 return(s)

func GF34

func GF34[I1 any, I2 any, I3 any, O1 any, O2 any, O3 any, O4 any](f func(i1 any, i2 any, i3 any) (o1 O1, o2 O2, o3 O3, o4 O4)) F34[I1, I2, I3, O1, O2, O3, O4]

GF34 generalize a function with argument type any to generic

func (F34[I1, I2, I3, O1, O2, O3, O4]) Do

func (f F34[I1, I2, I3, O1, O2, O3, O4]) Do(i1 I1, i2 I2, i3 I3) (o1 O1, o2 O2, o3 O3, o4 O4)

type F40

type F40[I1 any, I2 any, I3 any, I4 any] func(i1 I1, i2 I2, i3 I3, i4 I4)

F40 function with 4 argument(s) and 0 return(s)

func GF40

func GF40[I1 any, I2 any, I3 any, I4 any](f func(i1 any, i2 any, i3 any, i4 any)) F40[I1, I2, I3, I4]

GF40 generalize a function with argument type any to generic

func (F40[I1, I2, I3, I4]) Do

func (f F40[I1, I2, I3, I4]) Do(i1 I1, i2 I2, i3 I3, i4 I4)

type F41

type F41[I1 any, I2 any, I3 any, I4 any, O1 any] func(i1 I1, i2 I2, i3 I3, i4 I4) (o1 O1)

F41 function with 4 argument(s) and 1 return(s)

func GF41

func GF41[I1 any, I2 any, I3 any, I4 any, O1 any](f func(i1 any, i2 any, i3 any, i4 any) (o1 O1)) F41[I1, I2, I3, I4, O1]

GF41 generalize a function with argument type any to generic

func (F41[I1, I2, I3, I4, O1]) Do

func (f F41[I1, I2, I3, I4, O1]) Do(i1 I1, i2 I2, i3 I3, i4 I4) (o1 O1)

type F42

type F42[I1 any, I2 any, I3 any, I4 any, O1 any, O2 any] func(i1 I1, i2 I2, i3 I3, i4 I4) (o1 O1, o2 O2)

F42 function with 4 argument(s) and 2 return(s)

func GF42

func GF42[I1 any, I2 any, I3 any, I4 any, O1 any, O2 any](f func(i1 any, i2 any, i3 any, i4 any) (o1 O1, o2 O2)) F42[I1, I2, I3, I4, O1, O2]

GF42 generalize a function with argument type any to generic

func (F42[I1, I2, I3, I4, O1, O2]) Do

func (f F42[I1, I2, I3, I4, O1, O2]) Do(i1 I1, i2 I2, i3 I3, i4 I4) (o1 O1, o2 O2)

type F43

type F43[I1 any, I2 any, I3 any, I4 any, O1 any, O2 any, O3 any] func(i1 I1, i2 I2, i3 I3, i4 I4) (o1 O1, o2 O2, o3 O3)

F43 function with 4 argument(s) and 3 return(s)

func GF43

func GF43[I1 any, I2 any, I3 any, I4 any, O1 any, O2 any, O3 any](f func(i1 any, i2 any, i3 any, i4 any) (o1 O1, o2 O2, o3 O3)) F43[I1, I2, I3, I4, O1, O2, O3]

GF43 generalize a function with argument type any to generic

func (F43[I1, I2, I3, I4, O1, O2, O3]) Do

func (f F43[I1, I2, I3, I4, O1, O2, O3]) Do(i1 I1, i2 I2, i3 I3, i4 I4) (o1 O1, o2 O2, o3 O3)

type F44

type F44[I1 any, I2 any, I3 any, I4 any, O1 any, O2 any, O3 any, O4 any] func(i1 I1, i2 I2, i3 I3, i4 I4) (o1 O1, o2 O2, o3 O3, o4 O4)

F44 function with 4 argument(s) and 4 return(s)

func GF44

func GF44[I1 any, I2 any, I3 any, I4 any, O1 any, O2 any, O3 any, O4 any](f func(i1 any, i2 any, i3 any, i4 any) (o1 O1, o2 O2, o3 O3, o4 O4)) F44[I1, I2, I3, I4, O1, O2, O3, O4]

GF44 generalize a function with argument type any to generic

func (F44[I1, I2, I3, I4, O1, O2, O3, O4]) Do

func (f F44[I1, I2, I3, I4, O1, O2, O3, O4]) Do(i1 I1, i2 I2, i3 I3, i4 I4) (o1 O1, o2 O2, o3 O3, o4 O4)

type M

type M = map[string]interface{}

M shorthand to map[string]interface{}

type T2

type T2[I1 any, I2 any] struct {
	A I1
	B I2
}

T2 tuple with 2 fields

type T3

type T3[I1 any, I2 any, I3 any] struct {
	A I1
	B I2
	C I3
}

T3 tuple with 3 fields

type T4

type T4[I1 any, I2 any, I3 any, I4 any] struct {
	A I1
	B I2
	C I3
	D I4
}

T4 tuple with 4 fields

Jump to

Keyboard shortcuts

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