lambdas

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 17, 2022 License: MIT Imports: 1 Imported by: 0

README

genesis/lambdas

Package lambdas provides helper generic functions.

These functions are especially helpful in combination with other genesis packages.

Available functions:

  1. EqualTo
  2. LessThan
  3. Not
  4. IsZero
  5. IsNotZero
  6. IsEmpty
  7. IsNotEmpty
  8. IsDefault
  9. IsNotDefault
  10. IsNaN
  11. IsNotNaN
  12. IsNil
  13. IsNotNil
  14. Must
  15. Ensure
  16. Safe
  17. DefaultTo
  18. Abs
  19. Min
  20. Max
  21. Default

Documentation

Overview

Package lambdas provides helper generic functions.

These functions are especially helpful in combination with other `genesis` packages.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Abs

func Abs[T Number](a T) T

Abs returns positive value

Example
package main

import (
	"fmt"

	"github.com/life4/genesis/lambdas"
)

func main() {
	res := lambdas.Abs(-13)
	fmt.Println(res)
}
Output:

13

func Default

func Default[T any](value T) T

Default returns the default value of the same type as the given value.

A few examples:

  • 0 for int and float
  • "" for string
  • nil for slice

func DefaultTo

func DefaultTo[T any](def T) func(val T, err error) T

DefaultTo wraps a function invicotaion and returns the specified default value if it returned an error.

Example
package main

import (
	"fmt"

	"github.com/life4/genesis/lambdas"
	"github.com/life4/genesis/slices"
)

func main() {
	res := lambdas.DefaultTo(13)(slices.Min([]int{}))
	fmt.Println(res)
}
Output:

13

func Ensure added in v1.1.0

func Ensure(err error)

Ensure wraps a function invicotaion and panic if it returned an error. Compared to Must, in Ensure the called function only returns an error.

func EqualTo

func EqualTo[T comparable](a T) func(T) bool

EqualTo returns lambda that checks if an item is equal to the given value.

func IsDefault

func IsDefault[T comparable](value T) bool

IsDefault checks if the given value is the default for this type.

A few examples:

  • 0 for int and float
  • "" for string
  • nil for slice

func IsEmpty

func IsEmpty[T any](items []T) bool

IsEmpty checks if the given slice is empty

func IsNaN

func IsNaN[T comparable](value T) bool

func IsNil

func IsNil[T any](value *T) bool

func IsNotDefault

func IsNotDefault[T comparable](value T) bool

IsNotDefault checks if the given value is not the default for this type.

A few examples:

  • 0 for int and float
  • "" for string
  • nil for slice

func IsNotEmpty

func IsNotEmpty[T any](items []T) bool

Empty checks if the given slice is not empty

func IsNotNaN

func IsNotNaN[T comparable](value T) bool

func IsNotNil

func IsNotNil[T any](value *T) bool

func IsNotZero

func IsNotZero[T Number](n T) bool

IsNotZero checks if the given number is not zero

func IsZero

func IsZero[T Number](n T) bool

IsZero checks if the given number is zero

func LessThan

func LessThan[T constraints.Ordered](a T) func(T) bool

LessThan returns lambda that checks if an item is less than the given value.

func Max

func Max[T constraints.Ordered](a T, b T) T

Max returns maximal value

Example
package main

import (
	"fmt"

	"github.com/life4/genesis/lambdas"
)

func main() {
	res := lambdas.Max(10, 13)
	fmt.Println(res)
}
Output:

13

func Min

func Min[T constraints.Ordered](a T, b T) T

Min returns minimal value

Example
package main

import (
	"fmt"

	"github.com/life4/genesis/lambdas"
)

func main() {
	res := lambdas.Min(15, 13)
	fmt.Println(res)
}
Output:

13

func Must

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

Must wraps a function invicotaion and panic if it returned an error.

Example
package main

import (
	"fmt"

	"github.com/life4/genesis/lambdas"
	"github.com/life4/genesis/slices"
)

func main() {
	res := lambdas.Must(slices.Min([]int{42, 7, 13}))
	fmt.Println(res)
}
Output:

7

func Not

func Not[T constraints.Ordered](f func(T) bool) func(T) bool

Not negates the result of a lambda

func Safe

func Safe[T any](val T, err error) T

Safe wraps a function invicotaion and returns the empty value if it returned an error.

Example
package main

import (
	"fmt"

	"github.com/life4/genesis/lambdas"
	"github.com/life4/genesis/slices"
)

func main() {
	res := lambdas.Safe(slices.Min([]int{}))
	fmt.Println(res)
}
Output:

0

Types

type Number

type Number interface {
	constraints.Integer | constraints.Float
}

Jump to

Keyboard shortcuts

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