Documentation
¶
Index ¶
- func ChunkChannel[T any](ctx context.Context, input <-chan T, chunkSize int) <-chan []T
- func CmpVersion(a, b string) int
- func FilterFunc[T any](s []T, f func(T) bool) []T
- func FixUtf8(s string) string
- func FormatMessage(msg string, vars []any) string
- func LangCode(lang string) string
- func LangName(code string) string
- func Map[T any, U any](s []T, f func(T) U) []U
- func PrintUserMessage(err error)
- func SliceMap[T comparable](s []T) map[T]int
- type Error
- type ErrorBase
- type MessageBase
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ChunkChannel ¶ added in v0.46.0
ChunkChannel reads from an input channel and sends slices (chunks) of up to `chunkSize` items to an output channel. If the input channel is closed, any remaining items are sent as a final slice. The output channel is closed after all data is processed.
Parameters:
- `ctx`: Context for cancellation.
- `input`: Input channel.
- `chunkSize`: Max items per chunk.
Returns:
- Output channel with slices of items.
Example:
input := make(chan int)
go func() { for i := 1; i <= 10; i++ { input <- i }; close(input) }()
chunked := ChunkChannel(context.Background(), input, 3)
for chunk := range chunked { fmt.Println(chunk) }
// Output: [1 2 3] [4 5 6] [7 8 9] [10]
func CmpVersion ¶ added in v0.44.0
CmpVersion compares two semantic versions (eg v0.1.3 vs v0.2.0) as a and b. It returns 0 if the versions are equal, 1 if a is greater than b, and -1 if a is less than b. The version strings are expected to be in a format that can be split into integer components for comparison, such as "1.2.3" or "1.0.0".
func FilterFunc ¶ added in v0.32.0
Filter returns a new slice containing only the elements of s for which filter function returns true.
func FixUtf8 ¶ added in v0.49.0
FixUtf8 cleans a string by replacing invalid UTF-8 sequences with U+FFFD and normalizing to NFC.
func FormatMessage ¶ added in v0.58.0
FormatMessage is a static function that takes a message string with optional format variables and returns a colorized string based on tags.
It replaces format verbs in the message with values from the vars slice. It also parses the following tags and replaces them with colored output:
- <title>...</title> for green text.
- <warning>...</warning> for red text.
- <em>...</em> for yellow text.
Example:
msg := FormatMessage("Processing <title>%s</title>", []any{"file.txt"})
func Map ¶
Map applies a function to each element of a slice and returns a new slice in the same order.
func PrintUserMessage ¶ added in v0.57.0
func PrintUserMessage(err error)
func SliceMap ¶ added in v0.45.0
func SliceMap[T comparable](s []T) map[T]int
SliceMap takes a slice and returns back a lookup map which allows to find index for each element of the slice. If the value happens several times in the slice, the index corresponds to the first matching element.
Types ¶
type Error ¶ added in v0.57.0
type Error interface {
error
// UserMessage returns a formatted and colorized string that is safe to
// display to an end-user.
UserMessage() string
}
Error is an interface for errors that can produce a formatted, user-friendly message. It is intended for errors that need to be displayed to the end-user on STDOUT.
type ErrorBase ¶ added in v0.57.0
type ErrorBase = MessageBase
ErrorBase is an alias for MessageBase for backward compatibility. Deprecated: Use MessageBase instead.
type MessageBase ¶ added in v0.58.0
type MessageBase struct {
// Msg is the message string. It can be a format string for fmt.Sprintf.
Msg string
// Vars is a slice of arguments for the Msg format string.
Vars []any
}
MessageBase is a base type that implements the Error interface. It can be embedded in other error types to provide the basic functionality for formatted, colorized messages. It can also be used independently for non-error messages that need colorization.
func NewMessage ¶ added in v0.58.0
func NewMessage(msg string, vars []any) MessageBase
NewMessage is a constructor for MessageBase. It takes a message string (which can be a format string) and a slice of arguments for the format string.
func (MessageBase) UserMessage ¶ added in v0.58.0
func (mb MessageBase) UserMessage() string
UserMessage formats the error message with its variables and applies terminal colors based on tags.
It replaces format verbs in the Msg string with values from the Vars slice. It also parses the following tags and replaces them with colored output:
- <title>...</title> for green text.
- <warning>...</warning> for red text.
- <em>...</em> for yellow text.
Directories
¶
| Path | Synopsis |
|---|---|
|
ent
|
|
|
nomcode
Package nomcode provides types and functions for nomenclatural codes.
|
Package nomcode provides types and functions for nomenclatural codes. |
|
reconciler
package reconciler describes entities for implementation of a Reconciliation Service API v0.2 https://www.w3.org/community/reports/reconciliation/CG-FINAL-specs-0.2-20230410/
|
package reconciler describes entities for implementation of a Reconciliation Service API v0.2 https://www.w3.org/community/reports/reconciliation/CG-FINAL-specs-0.2-20230410/ |