Errors
Overview
Section titled “Overview”gogenfilter uses branded errors with [gogenfilter:<code>] prefixes for structured error handling.
Pattern
Section titled “Pattern”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()) }}Error Interface
Section titled “Error Interface”Errors implement:
error— standard Go error interfaceErrorCoder— returns a structured error codeHelper— provides user-friendly error messages
Sentinel Errors
Section titled “Sentinel Errors”Use errors.Is for comparison:
errors.Is(err, gogenfilter.ErrFileNotFound)Error Codes
Section titled “Error Codes”Error codes use the pattern [gogenfilter:<code>] for easy grep and log filtering.
Generic Code Matching
Section titled “Generic Code Matching”Use CodeEqual[T] for type-safe error code comparison:
if gogenfilter.CodeEqual[gogenfilter.FileNotFoundCode](err) { // handle file not found}