zstdzgo.at/zstd/zint Index | Files

package zint

import "zgo.at/zstd/zint"

Package zint implements functions for ints.

Index

Functions

func Contains

func Contains(list []int, i int) bool

Contains reports whether i is within the list.

Deprecated: use slices.Contains

func Contains64

func Contains64(list []int64, i int64) bool

Contains64 reports whether i is within the list.

Deprecated: use slices.Contains

func Difference

func Difference(set []int64, others ...[]int64) []int64

Difference returns a new slice with elements that are in "set" but not in "others".

Deprecated: use zslices.Difference

func DivideCeil

func DivideCeil(count int64, pageSize int64) int64

DivideCeil divides two integers and rounds up, rather than down (which is what happens when you do int64/int64).

func Fields

func Fields(s string) ([]int64, error)

Fields splits a strings with strings.Fields() and parses each entry as an integer.

func Filter

func Filter(list []int64, fun func(int64) bool) []int64

Fiter a list.

The function will be called for every item and those that return false will not be included in the return value.

func FilterEmpty

func FilterEmpty(e int64) bool

FilterEmpty is a filter for Filter() to remove empty entries.

func Join

func Join[T integer](ints []T, sep string) string

Join a slice of ints to a comma separated string with the given separator.

func Join64

func Join64(ints []int64, sep string) string

Join a slice of int64 to a comma separated string with the given separator.

Deprecated: use Join()

func Max

func Max[T integer](a, b T) T

Max gets the highest of two numbers.

func MaxInt

func MaxInt(a, b int) int

MaxInt gets the highest of two numbers.

Deprecated: use Max()

func Min

func Min[T integer](a, b T) T

Min gets the lowest of two numbers.

func MinInt

func MinInt(a, b int) int

MinInt gets the lowest of two numbers.

Deprecated: use Min()

func NonZero

func NonZero(a, b int64, c ...int64) int64

NonZero returns the first argument that is not 0. It will return 0 if all arguments are 0.

func Range

func Range(start, end int) []int

Range creates an []int counting at "start" up to (and including) "end".

func RoundToPowerOf2

func RoundToPowerOf2(n uint64) uint64

RoundToPowerOf2 rounds up to the nearest power of 2.

https://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2

func Split

func Split(s string, sep string) ([]int64, error)

Split a string to a slice of []int64.

func ToIntSlice

func ToIntSlice(v any) ([]int64, bool)

ToIntSlice converts any []int type to an []int64.

func ToUintSlice

func ToUintSlice(v any) ([]uint64, bool)

ToUintSlice converts any []int type to an []uint64.

func Uniq

func Uniq(list []int64) []int64

Uniq removes duplicate entries from the list. The list will be sorted.

Deprecated: use zslices.Uniq

Types

type Bitflag16

type Bitflag16 uint16

Bitflag16 is an uint16 with some extra methods to make bitmask/flag manipulation a bit more convenient.

func (*Bitflag16) Clear

func (f *Bitflag16) Clear(flag Bitflag16)

func (Bitflag16) Has

func (f Bitflag16) Has(flag Bitflag16) bool

func (*Bitflag16) Set

func (f *Bitflag16) Set(flag Bitflag16)

func (*Bitflag16) Toggle

func (f *Bitflag16) Toggle(flag Bitflag16)

func (*Bitflag16) UnmarshalJSON

func (f *Bitflag16) UnmarshalJSON(text []byte) error

func (*Bitflag16) UnmarshalText

func (f *Bitflag16) UnmarshalText(text []byte) error

type Bitflag32

type Bitflag32 uint32

Bitflag32 is an uint32 with some extra methods to make bitmask/flag manipulation a bit more convenient.

func (*Bitflag32) Clear

func (f *Bitflag32) Clear(flag Bitflag32)

func (Bitflag32) Has

func (f Bitflag32) Has(flag Bitflag32) bool

func (*Bitflag32) Set

func (f *Bitflag32) Set(flag Bitflag32)

func (*Bitflag32) Toggle

func (f *Bitflag32) Toggle(flag Bitflag32)

func (*Bitflag32) UnmarshalJSON

func (f *Bitflag32) UnmarshalJSON(text []byte) error

func (*Bitflag32) UnmarshalText

func (f *Bitflag32) UnmarshalText(text []byte) error

type Bitflag64

type Bitflag64 uint64

Bitflag64 is an uint64 with some extra methods to make bitmask/flag manipulation a bit more convenient.

func (*Bitflag64) Clear

func (f *Bitflag64) Clear(flag Bitflag64)

func (Bitflag64) Has

func (f Bitflag64) Has(flag Bitflag64) bool

func (*Bitflag64) Set

func (f *Bitflag64) Set(flag Bitflag64)

func (*Bitflag64) Toggle

func (f *Bitflag64) Toggle(flag Bitflag64)

func (*Bitflag64) UnmarshalJSON

func (f *Bitflag64) UnmarshalJSON(text []byte) error

func (*Bitflag64) UnmarshalText

func (f *Bitflag64) UnmarshalText(text []byte) error

type Bitflag8

type Bitflag8 uint8

Bitflag8 is an uint8 with some extra methods to make bitmask/flag manipulation a bit more convenient.

func (*Bitflag8) Clear

func (f *Bitflag8) Clear(flag Bitflag8)

func (Bitflag8) Has

func (f Bitflag8) Has(flag Bitflag8) bool

func (*Bitflag8) Set

func (f *Bitflag8) Set(flag Bitflag8)

func (*Bitflag8) Toggle

func (f *Bitflag8) Toggle(flag Bitflag8)

func (*Bitflag8) UnmarshalJSON

func (f *Bitflag8) UnmarshalJSON(text []byte) error

func (*Bitflag8) UnmarshalText

func (f *Bitflag8) UnmarshalText(text []byte) error

type Int

type Int int

Int with various methods to make conversions easier; useful especially in templates etc.

func (Int) Float32

func (s Int) Float32() float32

func (Int) Float64

func (s Int) Float64() float64

func (Int) Int

func (s Int) Int() int

func (Int) Int64

func (s Int) Int64() int64

func (Int) String

func (s Int) String() string

type Uint128

type Uint128 [2]uint64

Uint128 is an unsigned 128-bit integer.

Mostly intended to store UUIDs; storing it as a []byte takes up 40 bytes, whereas storing it in two uint64s takes up 16 bytes.

It's stored in so-called "big endian" format; that is, the most significant bit is on the right.

func NewUint128

func NewUint128(b []byte) (Uint128, error)

NewUint128 creates a new uint128 from a [16]byte.

func ParseUint128

func ParseUint128(s string, base int) (Uint128, error)

func (Uint128) Bytes

func (i Uint128) Bytes() []byte

func (Uint128) Format

func (i Uint128) Format(base int) string

Format according to the given base.

TODO: this is not really printin a number, but just printing the 2 numbers side-by-side, rather than actually adding up the bits.

func (Uint128) IsZero

func (i Uint128) IsZero() bool

func (Uint128) MarshalText

func (i Uint128) MarshalText() ([]byte, error)

MarshalText converts the data to a human readable representation.

func (*Uint128) New

func (i *Uint128) New(b []byte) error

New sets this uint128 from a [16]byte.

func (*Uint128) Parse

func (i *Uint128) Parse(str string, base int) error

func (*Uint128) Scan

func (i *Uint128) Scan(v any) error

Scan converts the data from the DB.

func (Uint128) String

func (i Uint128) String() string

func (Uint128) UUID

func (i Uint128) UUID() string

UUID formats as a UUID.

func (*Uint128) UnmarshalText

func (i *Uint128) UnmarshalText(v []byte) error

UnmarshalText parses text in to the Go data structure.

func (Uint128) Value

func (i Uint128) Value() (driver.Value, error)

Value determines what to store in the DB.

Source Files

bitflag.go deprecated.go uint128.go zint.go

Version
v0.0.0-20231206020926-f20b0b1e56be (latest)
Published
Dec 6, 2023
Platform
linux/amd64
Imports
5 packages
Last checked
2 days ago

Tools for package owners.