Documentation
¶
Index ¶
- func AnySlice[T any](in []T) []any
- func ConvertSliceToAny[T any](ts []T) []any
- func ConvertStringSlicePtr[T ~string](ss []string) *[]T
- func Deref[T any](val *T) T
- func DerefStr[T ~string](val *T) string
- func ExpandPath(path string) string
- func IsCI() bool
- func IsTerminal(w io.Writer) bool
- func Must[T any](v T, err error) T
- func Ptr[T any](val T) *T
- func PtrIfNonNil[T ~[]E, E any](val T) *T
- func SerializeToJSON(w io.Writer, v any) error
- func SerializeToYAML(w io.Writer, v any) error
- type Duration
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConvertSliceToAny ¶ added in v0.17.0
ConvertSliceToAny converts a slice of some type to slice of any. Returns nil if the input slice is nil.
func ConvertStringSlicePtr ¶ added in v0.9.0
ConvertStringSlicePtr converts a slice of strings to a pointer to another string-like type. Returns nil if the input slice is nil.
func ExpandPath ¶ added in v0.4.0
ExpandPath expands environment variables and tilde in file paths. It handles: - Empty paths (returns empty string) - Environment variable expansion (e.g., $HOME/config) - Home directory expansion (e.g., ~/config or ~) - Path normalization for cross-platform compatibility
func IsCI ¶ added in v0.10.0
func IsCI() bool
IsCI determines if the current execution context is within a known CI/CD system. This is based on https://github.com/watson/ci-info/blob/HEAD/index.js.
func IsTerminal ¶ added in v0.10.0
IsTerminal is a helper method for detecting whether an io.Writer is a interactive terminal / TTY.
func PtrIfNonNil ¶ added in v0.19.3
func PtrIfNonNil[T ~[]E, E any](val T) *T
func SerializeToYAML ¶ added in v0.10.0
SerializeToYAML serializes data to YAML format.
This function first marshals to JSON, then unmarshals and encodes to YAML. This approach ensures that:
- Structs from third-party libraries or generated code that only include json: struct tags (without yaml: tags) are correctly marshaled
- JSON and YAML marshaling produce consistent output, both respecting the same json: tags and omitempty directives
Types ¶
type Duration ¶ added in v0.19.0
Duration is a wrapper around time.Duration that allows it to be marshalled to/from JSON via the standard duration string format.
func (Duration) MarshalText ¶ added in v0.19.0
Implements the encoding.TextMarshaler interface.
func (*Duration) UnmarshalText ¶ added in v0.19.0
Implements the encoding.TextUnmarshaler interface.