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