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 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
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 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 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
}
ErrorBase is a base type that implements the Error interface. It can be embedded in other error types to provide the basic functionality.
func NewError ¶ added in v0.57.0
NewError is a constructor for ErrorBase. It takes a message string (which can be a format string) and a slice of arguments for the format string.
func (ErrorBase) UserMessage ¶ added in v0.57.0
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/ |