Documentation
¶
Overview ¶
Package examples. examples demonstrates practical usage patterns for the enhanced Result type.
Index ¶
- Variables
- func ExecuteTransaction(db *sql.DB, userID int, amount float64) (res result.Result[string])
- func FetchDataMultiLayer(id int) (res result.Result[string])
- func FetchWithRetry(url string, maxRetries int) (res result.Result[[]byte])
- func FetchWithTimeout(ctx context.Context, url string) (res result.Result[[]byte])
- func FindUserWithFallback(db *sql.DB, cache Cache, userID int) (res result.Result[User])
- func HandleGetUser(db *sql.DB) http.HandlerFunc
- func LoadConfiguration(configPath string) (res result.Result[Config])
- func MigrateToResult(db *sql.DB, userID int) (res result.Result[User])
- func ProcessOrderPipeline(db *sql.DB, orderID int) (res result.Result[string])
- func ResultStyleWithAndThen(db *sql.DB, orderID int) result.Result[string]
- func ResultStyleWithTry(db *sql.DB, orderID int) (res result.Result[string])
- func TraditionalStyle(db *sql.DB, orderID int) (string, error)
- func ValidateUserInput(email, password, username string) (res result.Result[User])
- type Cache
- type Config
- type Order
- type User
Constants ¶
This section is empty.
Variables ¶
var ( ErrUserNotFound = errors.New("user not found") ErrInvalidEmail = errors.New("invalid email format") ErrDatabaseDown = errors.New("database unavailable") ErrCacheMiss = errors.New("cache miss") ErrAPITimeout = errors.New("API request timeout") ErrInvalidInput = errors.New("invalid input") ErrConfigNotFound = errors.New("configuration not found") )
Functions ¶
func ExecuteTransaction ¶
ExecuteTransaction demonstrates error handling in database transactions.
func FetchDataMultiLayer ¶
FetchDataMultiLayer demonstrates cascading fallbacks through multiple data sources. Tries: Memory -> Local Cache -> Database -> Remote API -> Default
func FetchWithRetry ¶
FetchWithRetry demonstrates implementing retry logic with error handlers.
func FetchWithTimeout ¶
FetchWithTimeout demonstrates context cancellation handling.
func FindUserWithFallback ¶
FindUserWithFallback demonstrates using BubbleUp() with CatchWith for cache fallback. If database fails, it automatically tries the cache.
func HandleGetUser ¶
func HandleGetUser(db *sql.DB) http.HandlerFunc
HandleGetUser demonstrates using CatchErr to adapt to traditional (value, error) signatures. Useful for HTTP handlers and interface implementations.
func LoadConfiguration ¶
LoadConfiguration demonstrates using Fallback for default values.
func MigrateToResult ¶
MigrateToResult shows gradual migration from traditional error handling.
func ProcessOrderPipeline ¶
ProcessOrderPipeline demonstrates chaining multiple operations with BubbleUp(). Each step can fail and will automatically propagate errors.
func ResultStyleWithAndThen ¶
ResultStyleWithAndThen shows the functional chaining pattern.
func ResultStyleWithTry ¶
ResultStyleWithTry shows the new BubbleUp() pattern (recommended for sequential operations).
func TraditionalStyle ¶
TraditionalStyle shows standard Go error handling.