Documentation ¶
Overview ¶
Package core contains the core dependencies
Index ¶
- Variables
- func ArePointersEqual(a, b interface{}) bool
- func BigToDecimals(bigInt *big.Int, decimals uint8) float64
- func BytesToSlice(bytes [32]byte) []byte
- func ChunkSlice[T any](slice []T, chunkSize int) [][]T
- func CopyBigInt(val *big.Int) *big.Int
- func CopyFile(src, dest string) error
- func CopyPointer[T any](originalPtr *T) *T
- func ExpandOrReturnPath(path string) string
- func GetEnv(name, defaultVal string) string
- func GetEnvBool(name string, defaultVal bool) bool
- func GetEnvInt(name string, defaultVal int) int
- func HasEnv(name string) bool
- func IsTest() bool
- func PtrSlice[T any](slice []T) []*T
- func PtrTo[T any](v T) *T
- func RandomItem[T any](items []T) (res T, _ error)
- func SleepWithContext(ctx context.Context, dur time.Duration) error
- func ToSlice[T any](items ...T) []T
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var LogLevels = []zapcore.Level{zapcore.DebugLevel, zapcore.InfoLevel, zapcore.WarnLevel, zapcore.ErrorLevel, zapcore.DPanicLevel, zapcore.PanicLevel, zapcore.FatalLevel}
LogLevels stores available log levels in serverity order.
Functions ¶
func ArePointersEqual ¶ added in v0.0.52
func ArePointersEqual(a, b interface{}) bool
ArePointersEqual returns true if the given pointers are equal. Will return false if either of the given values are not pointers. nolint: cyclop, forcetypeassert
func BigToDecimals ¶ added in v0.1.2
BigToDecimals converts a big to decimals
func BytesToSlice ¶
BytesToSlice converts a 32 bit array to a slice slice.
func ChunkSlice ¶ added in v0.0.82
ChunkSlice takes a slice of any ordered type (like int, float64, string, etc.) and divides it into chunks of a specified size.
func CopyBigInt ¶
CopyBigInt creates a copy of a big int without mutating the original.
func CopyFile ¶ added in v0.0.74
CopyFile copies a file from src to dest and preserves its permissions.
func CopyPointer ¶ added in v0.1.4
func CopyPointer[T any](originalPtr *T) *T
CopyPointer is a generic function that takes a pointer of any type and returns a new pointer to a new value of the same type.
func ExpandOrReturnPath ¶ added in v0.0.6
ExpandOrReturnPath expands a homedir path, if it can't be expanded, the original dir is returned since on these systems homedir cannot be used anyway.
func GetEnv ¶
GetEnv gets an environment variable. If it is not present, the default variable is used.
func GetEnvBool ¶ added in v0.0.70
GetEnvBool gets an environment variable as a bool. If not found the default value is used.
func GetEnvInt ¶
GetEnvInt gets an environment variable as an int. if not found or cast the defaultVal is returned.
func IsTest ¶ added in v0.0.11
func IsTest() bool
IsTest returns true if the current process is a test.
func PtrSlice ¶ added in v0.0.61
func PtrSlice[T any](slice []T) []*T
PtrSlice converts every item in the slice to a pointer.
Example ¶
package main import ( "fmt" "github.com/ethereum/go-ethereum/common" "github.com/synapsecns/sanguine/core" "reflect" ) func main() { res := core.PtrSlice([]common.Hash{}) fmt.Println(reflect.TypeOf(res)) }
Output: []*common.Hash
func PtrTo ¶ added in v0.0.32
func PtrTo[T any](v T) *T
PtrTo returns a pointer to the given value.
Example ¶
package main import ( "fmt" "github.com/ethereum/go-ethereum/common" "github.com/synapsecns/sanguine/core" "reflect" ) func main() { res := core.PtrTo(common.Hash{}) fmt.Println(reflect.TypeOf(res)) }
Output: *common.Hash
func RandomItem ¶ added in v0.0.36
RandomItem is a generic function to get a random item from a slice.
func SleepWithContext ¶ added in v0.0.43
SleepWithContext will wait for the timer duration to expire, or the context is canceled. Which ever happens first. If the context is canceled the Context's error will be returned.
Expects Context to always return a non-nil error if the Done channel is closed. Note: this was taknen from the aws sdk, but modified to avoid the dependency in core.
Types ¶
This section is empty.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package bytemap is an implementation of https://github.com/google/triemap/blob/main/bytemap.go with generic support for values
|
Package bytemap is an implementation of https://github.com/google/triemap/blob/main/bytemap.go with generic support for values |
Package commandline contains common utilities for use across clis
|
Package commandline contains common utilities for use across clis |
Package config contains the configuration required to run a node.
|
Package config contains the configuration required to run a node. |
Package dbcommon provides common database functionality
|
Package dbcommon provides common database functionality |
Package dockerutil contains facilities for programs to add context to docker tests.
|
Package dockerutil contains facilities for programs to add context to docker tests. |
Package ginhelper provides some common functionality across gin servers.
|
Package ginhelper provides some common functionality across gin servers. |
internal
|
|
assets
Package assets provides static assets we want to embed in the application in the main folder and documentation related assets in subfolders.
|
Package assets provides static assets we want to embed in the application in the main folder and documentation related assets in subfolders. |
Package mapmutex provides an extensible, type-safe mutex implementation TODO: use generics
|
Package mapmutex provides an extensible, type-safe mutex implementation TODO: use generics |
Package merkle provides the tools to create a merkle tree and keep track of its historical states.
|
Package merkle provides the tools to create a merkle tree and keep track of its historical states. |
Package metrics implements a metrics dashboard with either
|
Package metrics implements a metrics dashboard with either |
instrumentation
Package instrumentation provides a set of custom instruments for different providers.
|
Package instrumentation provides a set of custom instruments for different providers. |
internal
Package internal contains internal constants for metrics package this is done in a separate package to avoid circular dependencies
|
Package internal contains internal constants for metrics package this is done in a separate package to avoid circular dependencies |
localmetrics
Package localmetrics provides a local server for metrics.
|
Package localmetrics provides a local server for metrics. |
logger
Package logger provides a logger interface and a null logger implementation.
|
Package logger provides a logger interface and a null logger implementation. |
Package mocktesting is used for mocking out the testing.T interface.
|
Package mocktesting is used for mocking out the testing.T interface. |
Package observer provides an observer implementation
|
Package observer provides an observer implementation |
Package processlog contains an opinionated method for piping logs from external processes into stdout and readbale files for testing..
|
Package processlog contains an opinionated method for piping logs from external processes into stdout and readbale files for testing.. |
Package retry provides a simple yet powerful retry mechanism for Go.
|
Package retry provides a simple yet powerful retry mechanism for Go. |
Package server provides a way to access a server TODO: consider moving this into gin helper
|
Package server provides a way to access a server TODO: consider moving this into gin helper |
Package testsuite contains the standard test suite
|
Package testsuite contains the standard test suite |
Package threaditer extends iter with a mutex for thread safe use
|
Package threaditer extends iter with a mutex for thread safe use |