...
1
2
3
4
5
6
7
8
9 package raw
10
11 import (
12 "fmt"
13 "io"
14
15 "golang.org/x/exp/trace/internal/version"
16 )
17
18
19 type TextWriter struct {
20 w io.Writer
21 v version.Version
22 }
23
24
25 func NewTextWriter(w io.Writer, v version.Version) (*TextWriter, error) {
26 _, err := fmt.Fprintf(w, "Trace Go1.%d\n", v)
27 if err != nil {
28 return nil, err
29 }
30 return &TextWriter{w: w, v: v}, nil
31 }
32
33
34 func (w *TextWriter) WriteEvent(e Event) error {
35
36 if e.Version != w.v {
37 return fmt.Errorf("mismatched version between writer (go 1.%d) and event (go 1.%d)", w.v, e.Version)
38 }
39
40
41 _, err := fmt.Fprintln(w.w, e.String())
42 return err
43 }
44
View as plain text