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  }