Skip to content

Errors

gogenfilter uses branded errors with [gogenfilter:<code>] prefixes for structured error handling.

filtered, err := f.ShouldFilter("nonexistent.go")
if err != nil {
// Check for specific error types
var ferr *gogenfilter.FilterError
if errors.As(err, &ferr) {
fmt.Println(ferr.Code())
}
}

Errors implement:

  • error — standard Go error interface
  • ErrorCoder — returns a structured error code
  • Helper — provides user-friendly error messages

Use errors.Is for comparison:

errors.Is(err, gogenfilter.ErrFileNotFound)

Error codes use the pattern [gogenfilter:<code>] for easy grep and log filtering.

Use CodeEqual[T] for type-safe error code comparison:

if gogenfilter.CodeEqual[gogenfilter.FileNotFoundCode](err) {
// handle file not found
}