util

package
v1.0.3 Latest Latest
Warning

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

Go to latest
Published: Mar 6, 2024 License: Apache-2.0 Imports: 24 Imported by: 5

Documentation

Index

Constants

View Source
const RatioByteSize = serializer.UInt32ByteSize + serializer.UInt32ByteSize

A + B

View Source
const WindowsOS = "windows"

Variables

View Source
var (
	Big0       = big.NewInt(0)
	Big1       = big.NewInt(1)
	MaxUint256 = new(big.Int).Sub(new(big.Int).Lsh(Big1, 256), Big1)
)

Functions

func AliasIDFromAliasOutput added in v0.3.0

func AliasIDFromAliasOutput(out *iotago.AliasOutput, outID iotago.OutputID) iotago.AliasID

func BaseTokensDecimalsToEthereumDecimals added in v0.3.6

func BaseTokensDecimalsToEthereumDecimals(value uint64, baseTokenDecimals uint32) (result *big.Int, remainder uint64)

base tokens => wei

func CloneMap added in v1.0.3

func CloneMap[K comparable, T Cloneable[T]](base map[K]T) map[K]T

CloneMap clones every element in the the map into cloned and returns the cloned map.

func CloneSlice added in v1.0.3

func CloneSlice[T Cloneable[T]](base []T) []T

CloneSlice clones every element in the the slice into cloned and returns the cloned slice.

func CreateDirectoryForFilePath added in v1.0.3

func CreateDirectoryForFilePath(filePath string, perm os.FileMode) error

func DecodeHexBinaryMarshaled added in v1.0.3

func DecodeHexBinaryMarshaled(dataHex string, value encoding.BinaryUnmarshaler) error

func DecodeSliceHexBinaryMarshaled added in v1.0.3

func DecodeSliceHexBinaryMarshaled[M encoding.BinaryUnmarshaler](dataHex []string, values []M) error

func EncodeHexBinaryMarshaled added in v1.0.3

func EncodeHexBinaryMarshaled(value encoding.BinaryMarshaler) (string, error)

func EncodeSliceHexBinaryMarshaled added in v1.0.3

func EncodeSliceHexBinaryMarshaled[M encoding.BinaryMarshaler](values []M) ([]string, error)

func EthereumDecimalsToBaseTokenDecimals added in v0.3.6

func EthereumDecimalsToBaseTokenDecimals(value *big.Int, baseTokenDecimals uint32) (result uint64, remainder *big.Int)

wei => base tokens

func ExecuteIfNotNil added in v1.0.3

func ExecuteIfNotNil(function func())

func ExistsFilePath added in v0.1.0

func ExistsFilePath(filePath string) (bool, error)

ExistsFilePath returns whether the given file or directory exists.

func GentleTruncate added in v0.1.0

func GentleTruncate(s string, length int) string

func GetHashValue

func GetHashValue(obj interface{ Bytes() []byte }) hashing.HashValue

func IsPositiveBigInt added in v1.0.3

func IsPositiveBigInt(n *big.Int) bool

func IsSlug added in v1.0.3

func IsSlug(s string) bool

func IsZeroBigInt added in v0.3.0

func IsZeroBigInt(bi *big.Int) bool

func MakeRange added in v0.2.0

func MakeRange(from, to int) []int

MakeRange returns slice with a range of elements starting from to up to-1, inclusive

func MustBaseTokensDecimalsToEthereumDecimalsExact added in v1.0.3

func MustBaseTokensDecimalsToEthereumDecimalsExact(value uint64, baseTokenDecimals uint32) (result *big.Int)

func MustEthereumDecimalsToBaseTokenDecimalsExact added in v1.0.3

func MustEthereumDecimalsToBaseTokenDecimalsExact(value *big.Int, baseTokenDecimals uint32) (result uint64)

func MustTokenScheme added in v0.3.0

func MustTokenScheme(tokenScheme iotago.TokenScheme) *iotago.SimpleTokenScheme

func NFTIDFromNFTOutput added in v0.3.0

func NFTIDFromNFTOutput(nftOutput *iotago.NFTOutput, outputID iotago.OutputID) iotago.NFTID

func NewPseudoRand added in v1.0.3

func NewPseudoRand(seed ...int64) *rand.Rand

func OutputFromBytes added in v1.0.3

func OutputFromBytes(data []byte) (iotago.Output, error)

func PrefixHex added in v1.0.3

func PrefixHex(data []byte, prefixLen int) string

Mostly for logging.

func Same added in v1.0.3

func Same[V Equated[V]](a, b []V) bool

Checks two slices, if they represent the same sets (same elements, maybe a different order).

func SliceShortString added in v1.0.3

func SliceShortString[E ShortStringable](slice []E) string

func TerminateCmdWhenTestStops added in v0.3.0

func TerminateCmdWhenTestStops(cmd *exec.Cmd)

func TimeOrNever added in v1.0.3

func TimeOrNever(t time.Time) string

func TimeOrNever2 added in v1.0.3

func TimeOrNever2(t time.Time, never string) string

func ToBigInt added in v0.3.0

func ToBigInt(i interface{}) *big.Int

func ValidPermutation

func ValidPermutation(perm []uint16) bool

Types

type BitVector added in v0.3.0

type BitVector interface {
	SetBits(positions []int) BitVector
	AsInts() []int
	Bytes() []byte
	Read(r io.Reader) error
	Write(w io.Writer) error
}

func FixedSizeBitVectorFromBytes added in v1.0.3

func FixedSizeBitVectorFromBytes(data []byte) (BitVector, error)

func NewFixedSizeBitVector added in v0.3.0

func NewFixedSizeBitVector(size uint16) BitVector

type Cloneable added in v1.0.3

type Cloneable[T any] interface {
	Clone() T
}

type ComparableAddress added in v1.0.3

type ComparableAddress struct {
	// contains filtered or unexported fields
}

func NewComparableAddress added in v1.0.3

func NewComparableAddress(address iotago.Address) *ComparableAddress

func (*ComparableAddress) Address added in v1.0.3

func (c *ComparableAddress) Address() iotago.Address

func (*ComparableAddress) Key added in v1.0.3

func (c *ComparableAddress) Key() string

func (*ComparableAddress) String added in v1.0.3

func (c *ComparableAddress) String() string

type ComparableString added in v1.0.3

type ComparableString string

func (ComparableString) Key added in v1.0.3

func (c ComparableString) Key() string

func (ComparableString) String added in v1.0.3

func (c ComparableString) String() string

type Equated added in v1.0.3

type Equated[V any] interface {
	Equals(other V) bool
}

type Permutation16

type Permutation16 struct {
	// contains filtered or unexported fields
}

Permutation16 deterministic permutation of integers from 0 to size-1

func NewPermutation16

func NewPermutation16(size uint16, seedOptional ...int64) (*Permutation16, error)

HINT: Seed should only be provided in tests to obtain predicted test results. If used in production, the seed should not be set, because it will be generated using cryptographically secure random number generator. The seed itself will be used to initialize a pseudo random number generator which is used to shuffle the permutations. Unless the permutations must be exactly the same between different calls (probable from different nodes). In the latter case, the seed should be the same for all the calls which expect the same permutation. This function always returns a permutation; error should be considered as a warning that permutation was seeded incorrectly.

func (*Permutation16) Current

func (perm *Permutation16) Current() uint16

func (*Permutation16) ForEach added in v0.3.0

func (perm *Permutation16) ForEach(f func(i uint16) bool)

func (*Permutation16) GetArray

func (perm *Permutation16) GetArray() []uint16

func (*Permutation16) Next

func (perm *Permutation16) Next() uint16

func (*Permutation16) NextNoCycles added in v0.3.0

func (perm *Permutation16) NextNoCycles() uint16

If the whole permutation is obtained, reshuffles it to avoid cycles

func (*Permutation16) Shuffle

func (perm *Permutation16) Shuffle() *Permutation16

type Ratio32 added in v0.3.0

type Ratio32 struct {
	A uint32 `json:"a" swagger:"min(0),required"`
	B uint32 `json:"b" swagger:"min(0),required"`
}

Ratio32 represents a ratio (a:b) between two quantities, expressed as two uint32 values.

func Ratio32FromBytes added in v0.3.0

func Ratio32FromBytes(data []byte) (ret Ratio32, err error)

func Ratio32FromString added in v1.0.3

func Ratio32FromString(s string) (ret Ratio32, err error)

func (Ratio32) Bytes added in v0.3.0

func (ratio Ratio32) Bytes() []byte

func (Ratio32) HasZeroComponent added in v1.0.3

func (ratio Ratio32) HasZeroComponent() bool

func (Ratio32) IsEmpty added in v1.0.3

func (ratio Ratio32) IsEmpty() bool

func (Ratio32) IsValid added in v1.0.3

func (ratio Ratio32) IsValid() bool

func (*Ratio32) Read added in v1.0.3

func (ratio *Ratio32) Read(r io.Reader) error

func (*Ratio32) Set added in v0.3.0

func (ratio *Ratio32) Set(s string) error

Set is part of the pflag.Value interface. It accepts a string in the form "a:b".

func (Ratio32) String added in v0.3.0

func (ratio Ratio32) String() string

func (Ratio32) Type added in v0.3.0

func (ratio Ratio32) Type() string

Type is part of the pflag.Value interface.

func (*Ratio32) Write added in v1.0.3

func (ratio *Ratio32) Write(w io.Writer) error

func (Ratio32) XCeil64 added in v0.3.0

func (ratio Ratio32) XCeil64(y uint64) uint64

XCeil64 computes x = ceil(y * a / b)

func (Ratio32) XFloor64 added in v0.3.0

func (ratio Ratio32) XFloor64(y uint64) uint64

XFloor64 computes x = floor(y * a / b)

func (Ratio32) YCeil64 added in v0.3.0

func (ratio Ratio32) YCeil64(x uint64) uint64

YCeil64 computes y = ceil(x * b / a)

func (Ratio32) YFloor64 added in v0.3.0

func (ratio Ratio32) YFloor64(x uint64) uint64

YFloor64 computes y = floor(x * b / a)

type ShortStringable added in v1.0.3

type ShortStringable interface {
	ShortString() string
}

type SliceStruct added in v1.0.3

type SliceStruct[E any] struct {
	// contains filtered or unexported fields
}

Putting slice into a map is not acceptable as if you want to append to slice, you'll have to re-include the appended slice into the map.

func NewSliceStruct added in v1.0.3

func NewSliceStruct[E any](elems ...E) *SliceStruct[E]

func NewSliceStructLength added in v1.0.3

func NewSliceStructLength[E any](length int) *SliceStruct[E]

func NewSliceStructLengthCapacity added in v1.0.3

func NewSliceStructLengthCapacity[E any](length, capacity int) *SliceStruct[E]

func (*SliceStruct[E]) Add added in v1.0.3

func (s *SliceStruct[E]) Add(elem E)

func (*SliceStruct[E]) Clone added in v1.0.3

func (s *SliceStruct[E]) Clone() *SliceStruct[E]

Returns a reference to new SliceStruct with exactly the same elements

func (*SliceStruct[E]) CloneDeep added in v1.0.3

func (s *SliceStruct[E]) CloneDeep(cloneFun func(E) E) *SliceStruct[E]

Returns a reference to new SliceStruct with every element of the old SliceStruct cloned using provided function

func (*SliceStruct[E]) ContainsBy added in v1.0.3

func (s *SliceStruct[E]) ContainsBy(fun func(E) bool) bool

func (*SliceStruct[E]) Find added in v1.0.3

func (s *SliceStruct[E]) Find(fun func(E) bool) (E, bool)

func (*SliceStruct[E]) ForEach added in v1.0.3

func (s *SliceStruct[E]) ForEach(forEachFun func(int, E) bool) bool

func (*SliceStruct[E]) Get added in v1.0.3

func (s *SliceStruct[E]) Get(index int) E

func (*SliceStruct[E]) Length added in v1.0.3

func (s *SliceStruct[E]) Length() int

func (*SliceStruct[E]) Set added in v1.0.3

func (s *SliceStruct[E]) Set(index int, elem E)

type Timer added in v0.3.0

type Timer struct {
	// contains filtered or unexported fields
}

func NewTimer added in v0.3.0

func NewTimer() *Timer

func (*Timer) Done added in v1.0.3

func (t *Timer) Done(name string)

func (*Timer) Duration added in v0.3.0

func (t *Timer) Duration() time.Duration

func (*Timer) Step added in v1.0.3

func (t *Timer) Step(name string)

func (*Timer) String added in v1.0.3

func (t *Timer) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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