MCPcopy
hub / github.com/tsenart/vegeta / encode

Function encode

encode.go:75–122  ·  view source on GitHub ↗
(files []string, to, output string)

Source from the content-addressed store, hash-verified

73}
74
75func encode(files []string, to, output string) error {
76 dec, mc, err := decoder(files)
77 defer mc.Close()
78 if err != nil {
79 return err
80 }
81
82 out, err := file(output, true)
83 if err != nil {
84 return err
85 }
86 defer out.Close()
87
88 var enc vegeta.Encoder
89 switch to {
90 case encodingCSV:
91 enc = vegeta.NewCSVEncoder(out)
92 case encodingGob:
93 enc = vegeta.NewEncoder(out)
94 case encodingJSON:
95 enc = vegeta.NewJSONEncoder(out)
96 default:
97 return fmt.Errorf("encode: unknown encoding %q", to)
98 }
99
100 sigch := make(chan os.Signal, 1)
101 signal.Notify(sigch, os.Interrupt)
102
103 for {
104 select {
105 case <-sigch:
106 return nil
107 default:
108 }
109
110 var r vegeta.Result
111 if err = dec.Decode(&r); err != nil {
112 if err == io.EOF {
113 break
114 }
115 return err
116 } else if err = enc.Encode(&r); err != nil {
117 return err
118 }
119 }
120
121 return nil
122}

Callers 1

encodeCmdFunction · 0.85

Calls 5

EncodeMethod · 0.95
decoderFunction · 0.85
fileFunction · 0.85
CloseMethod · 0.65
DecodeMethod · 0.45

Tested by

no test coverage detected