utils

package
v0.4.3-final-apache Latest Latest
Warning

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

Go to latest
Published: Mar 30, 2025 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CapitalizeFirstLetter

func CapitalizeFirstLetter(s string) string

Proper unicode aware capitalization function. If something is wrong – just returns string as is.

func Clone

func Clone[T any](val *T) *T

Clone performs a shallow clone operation on pointer value

func Contains

func Contains[K comparable, V any](m map[K]V, key K) bool

func Dedent

func Dedent(text string) string

Strip common margin from the beginnings of the lines

func EvalContextByFunc added in v0.4.2

func EvalContextByFunc(ctx *hcl.EvalContext, name string) *hcl.EvalContext

func EvalContextByVar added in v0.4.2

func EvalContextByVar(ctx *hcl.EvalContext, name string) *hcl.EvalContext

func FnMap added in v0.4.1

func FnMap[I, O any](s []I, fn func(I) O) []O

Produce a new slice by applying function fn to items of the slice s.

func FnMapDiags

func FnMapDiags[I, O any](diags *diagnostics.Diag, s []I, fn func(I) (O, diagnostics.Diag)) []O

Produce a new slice by applying function fn to items of the slice s. Collects slice-like errors from the second return value (diagnostics in our case)

func FnMapErr added in v0.4.2

func FnMapErr[I, O any](s []I, fn func(I) (O, error)) (out []O, err error)

Produce a new slice by applying (possibly erroring) function fn to items of the slice s. Returns on the first error with nil slice.

func IsNil

func IsNil(val any) bool

Correct version of nil check, works on nil interfaces as well as any other value.

func JoinSurround

func JoinSurround(sep, surround string, elems ...string) string

func MapMap added in v0.4.2

func MapMap[K comparable, VIn, VOut any](m map[K]VIn, fn func(VIn) VOut) map[K]VOut

Produce a new map by applying function fn to the values of the map m.

func MapMapDiags

func MapMapDiags[K comparable, VIn, VOut any](diags *diagnostics.Diag, m map[K]VIn, fn func(VIn) (VOut, diagnostics.Diag)) map[K]VOut

Produce a new map by applying function fn to items of the map m. Collects returned diagnostics

func MapMapErr added in v0.4.2

func MapMapErr[K comparable, VIn, VOut any](m map[K]VIn, fn func(VIn) (VOut, error)) (map[K]VOut, error)

Produce a new map by applying (possibly erroring) function fn to the values of the map m. Returns on the first error with nil map.

func MemoizedKeys

func MemoizedKeys[M ~map[string]V, V any](m *M) func() string

func Must added in v0.4.2

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

Unwraps the value, panics if err is not nil.

func OnceVal added in v0.4.2

func OnceVal[V any](fn func() (V, diagnostics.Diag)) func() (V, diagnostics.Diag)

OnceVal returns a function that calls fn only once and caches the result. If fn returns diagnostics with errors, the function will return it only once, on subsequent calls it will return RepeatedError.

func Pop

func Pop[K comparable, V any](m map[K]V, key K) (val V, found bool)

If key in map - return corresponding value and delete it from map

func RangeEnd

func RangeEnd(rng hcl.Range) hcl.Range

func RangeStart

func RangeStart(rng hcl.Range) hcl.Range

func SetAt added in v0.4.1

func SetAt[T any](slice []T, idx int, val T) []T

Sets slice[idx] = val, growing the slice if needed, and returns the updated slice.

func SliceToSet

func SliceToSet[K comparable](slice []K) map[K]struct{}

func ToHclsyntaxBody

func ToHclsyntaxBody(body hcl.Body) *hclsyntax.Body

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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