pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/errutil/example_test.go (about) 1 package errutil 2 3 // ////////////////////////////////////////////////////////////////////////////////// // 4 // // 5 // Copyright (c) 2022 ESSENTIAL KAOS // 6 // Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0> // 7 // // 8 // ////////////////////////////////////////////////////////////////////////////////// // 9 10 import ( 11 "fmt" 12 ) 13 14 // ////////////////////////////////////////////////////////////////////////////////// // 15 16 func ExampleChain() { 17 f1 := func() error { return nil } 18 f2 := func() error { return nil } 19 f3 := func() error { return fmt.Errorf("Error 3") } 20 f4 := func() error { return fmt.Errorf("Error 4") } 21 22 err := Chain(f1, f2, f3, f4) 23 24 fmt.Println(err.Error()) 25 26 // Output: 27 // Error 3 28 } 29 30 func ExampleErrors() { 31 f1 := func() error { return nil } 32 f2 := func() error { return nil } 33 f3 := func() error { return fmt.Errorf("Error 3") } 34 f4 := func() error { return fmt.Errorf("Error 4") } 35 36 // An Errors needs no initialization 37 var myErrs Errors 38 39 myErrs.Add(f1()) 40 41 // Using NewErrors you can create Errors instance with limited capacity 42 errs := NewErrors(10) 43 44 errs.Add(f1()) 45 errs.Add(f2()) 46 errs.Add(f3()) 47 errs.Add(f4()) 48 49 fmt.Printf("Last error text: %v\n", errs.Last().Error()) 50 fmt.Printf("Number of errors: %d\n", errs.Num()) 51 fmt.Printf("Capacity: %d\n", errs.Cap()) 52 fmt.Printf("Has errors: %t\n", errs.HasErrors()) 53 54 // Output: 55 // Last error text: Error 4 56 // Number of errors: 2 57 // Capacity: 10 58 // Has errors: true 59 }