1package csvutil_test 2 3import ( 4 "fmt" 5 6 "github.com/jszwec/csvutil" 7) 8 9type Status uint8 10 11const ( 12 Unknown = iota 13 Success 14 Failure 15) 16 17func (s Status) MarshalCSV() ([]byte, error) { 18 switch s { 19 case Success: 20 return []byte("success"), nil 21 case Failure: 22 return []byte("failure"), nil 23 default: 24 return []byte("unknown"), nil 25 } 26} 27 28type Job struct { 29 ID int 30 Status Status 31} 32 33func ExampleMarshal_customMarshalCSV() { 34 jobs := []Job{ 35 {1, Success}, 36 {2, Failure}, 37 } 38 39 b, err := csvutil.Marshal(jobs) 40 if err != nil { 41 fmt.Println("error:", err) 42 } 43 fmt.Println(string(b)) 44 45 // Output: 46 // ID,Status 47 // 1,success 48 // 2,failure 49} 50