@cryptotaxi247 / kubo / commits / 3547f7ae3

Replace 'var * bytes.Buffer' with '\1 := new(bytes.Buffer)'

rht committed May 26, 2015 at 23:18 UTC 3547f7ae335d696d428d5bc7b04c816190a9e2b3
27 files changed +96 -97
commands/cli/parse.go
+1 -1
@@ -321,7 +321,7 @@ func appendString(args, inputs []string) ([]string, []string) {
321 }
322
323 func appendStdinAsString(args []string, stdin *os.File) ([]string, *os.File, error) {
324 - var buf bytes.Buffer
324 + buf := new(bytes.Buffer)
325
326 _, err := buf.ReadFrom(stdin)
327 if err != nil {
commands/response_test.go
+1 -1
@@ -32,7 +32,7 @@ func TestMarshalling(t *testing.T) {
32 if err != nil {
33 t.Error(err, "Should have passed")
34 }
35 - var buf bytes.Buffer
35 + buf := new(bytes.Buffer)
36 buf.ReadFrom(reader)
37 output := buf.String()
38 if removeWhitespace(output) != "{\"Foo\":\"beep\",\"Bar\":\"boop\",\"Baz\":1337}" {
core/commands/bootstrap.go
+9 -10
@@ -112,13 +112,12 @@ in the bootstrap list).
112 return nil, u.ErrCast()
113 }
114
115 - var buf bytes.Buffer
116 - err := bootstrapWritePeers(&buf, "added ", v.Peers)
117 - if err != nil {
115 + buf := new(bytes.Buffer)
116 + if err := bootstrapWritePeers(buf, "added ", v.Peers); err != nil {
117 return nil, err
118 }
119
121 - return &buf, nil
120 + return buf, nil
121 },
122 },
123 }
@@ -178,9 +177,9 @@ var bootstrapRemoveCmd = &cmds.Command{
177 return nil, u.ErrCast()
178 }
179
181 - var buf bytes.Buffer
182 - err := bootstrapWritePeers(&buf, "removed ", v.Peers)
183 - return &buf, err
180 + buf := new(bytes.Buffer)
181 + err := bootstrapWritePeers(buf, "removed ", v.Peers)
182 + return buf, err
183 },
184 },
185 }
@@ -220,9 +219,9 @@ func bootstrapMarshaler(res cmds.Response) (io.Reader, error) {
219 return nil, u.ErrCast()
220 }
221
223 - var buf bytes.Buffer
224 - err := bootstrapWritePeers(&buf, "", v.Peers)
225 - return &buf, err
222 + buf := new(bytes.Buffer)
223 + err := bootstrapWritePeers(buf, "", v.Peers)
224 + return buf, err
225 }
226
227 func bootstrapWritePeers(w io.Writer, prefix string, peers []string) error {
core/commands/commands.go
+2 -2
@@ -36,11 +36,11 @@ func CommandsCmd(root *cmds.Command) *cmds.Command {
36 Marshalers: cmds.MarshalerMap{
37 cmds.Text: func(res cmds.Response) (io.Reader, error) {
38 v := res.Output().(*Command)
39 - var buf bytes.Buffer
39 + buf := new(bytes.Buffer)
40 for _, s := range cmdPathStrings(v) {
41 buf.Write([]byte(s + "\n"))
42 }
43 - return &buf, nil
43 + return buf, nil
44 },
45 },
46 Type: Command{},
core/commands/diag.go
+6 -6
@@ -132,14 +132,14 @@ that consume the dot format to generate graphs of the network.
132 case visD3:
133 res.SetOutput(bytes.NewReader(diag.GetGraphJson(info)))
134 case visDot:
135 - var buf bytes.Buffer
136 - w := diag.DotWriter{W: &buf}
135 + buf := new(bytes.Buffer)
136 + w := diag.DotWriter{W: buf}
137 err := w.WriteGraph(info)
138 if err != nil {
139 res.SetError(err, cmds.ErrNormal)
140 return
141 }
142 - res.SetOutput(io.Reader(&buf))
142 + res.SetOutput(io.Reader(buf))
143 default:
144 output, err := stdDiagOutputMarshal(standardDiagOutput(info))
145 if err != nil {
@@ -152,12 +152,12 @@ that consume the dot format to generate graphs of the network.
152 }
153
154 func stdDiagOutputMarshal(output *DiagnosticOutput) (io.Reader, error) {
155 - var buf bytes.Buffer
156 - err := printDiagnostics(&buf, output)
155 + buf := new(bytes.Buffer)
156 + err := printDiagnostics(buf, output)
157 if err != nil {
158 return nil, err
159 }
160 - return &buf, nil
160 + return buf, nil
161 }
162
163 func standardDiagOutput(info []*diag.DiagInfo) *DiagnosticOutput {
core/commands/diag_test.go
+2 -2
@@ -21,8 +21,8 @@ func TestPrintDiagnostics(t *testing.T) {
21 },
22 },
23 }
24 - var buf bytes.Buffer
25 - if err := printDiagnostics(&buf, &output); err != nil {
24 + buf := new(bytes.Buffer)
25 + if err := printDiagnostics(buf, &output); err != nil {
26 t.Fatal(err)
27 }
28 t.Log(buf.String())
core/commands/ls.go
+3 -3
@@ -109,8 +109,8 @@ it contains, with the following format:
109
110 headers, _, _ := res.Request().Option("headers").Bool()
111 output := res.Output().(*LsOutput)
112 - var buf bytes.Buffer
113 - w := tabwriter.NewWriter(&buf, 1, 2, 1, ' ', 0)
112 + buf := new(bytes.Buffer)
113 + w := tabwriter.NewWriter(buf, 1, 2, 1, ' ', 0)
114 for _, object := range output.Objects {
115 if len(output.Objects) > 1 {
116 fmt.Fprintf(w, "%s:\n", object.Hash)
@@ -130,7 +130,7 @@ it contains, with the following format:
130 }
131 w.Flush()
132
133 - return &buf, nil
133 + return buf, nil
134 },
135 },
136 Type: LsOutput{},
core/commands/mount_darwin.go
+5 -5
@@ -172,8 +172,8 @@ func tryGFVFromFuseVersion() (string, error) {
172 }
173
174 cmd := exec.Command("fuse-version", "-q", "-only", "agent", "-s", "OSXFUSE")
175 - var out bytes.Buffer
176 - cmd.Stdout = &out
175 + out := new(bytes.Buffer)
176 + cmd.Stdout = out
177 if err := cmd.Run(); err != nil {
178 return "", fmt.Errorf(errStrFailedToRunFuseVersion, fuseVersionPkg, dontCheckOSXFUSEConfigKey, err)
179 }
@@ -190,9 +190,9 @@ func ensureFuseVersionIsInstalled() error {
190 // try installing it...
191 log.Debug("fuse-version: no fuse-version. attempting to install.")
192 cmd := exec.Command("go", "get", "github.com/jbenet/go-fuse-version/fuse-version")
193 - var cmdout bytes.Buffer
194 - cmd.Stdout = &cmdout
195 - cmd.Stderr = &cmdout
193 + cmdout := new(bytes.Buffer)
194 + cmd.Stdout = cmdout
195 + cmd.Stderr = cmdout
196 if err := cmd.Run(); err != nil {
197 // Ok, install fuse-version failed. is it they dont have fuse?
198 cmdoutstr := cmdout.String()
core/commands/object.go
+6 -6
@@ -136,14 +136,14 @@ multihash.
136 Marshalers: cmds.MarshalerMap{
137 cmds.Text: func(res cmds.Response) (io.Reader, error) {
138 object := res.Output().(*Object)
139 - var buf bytes.Buffer
140 - w := tabwriter.NewWriter(&buf, 1, 2, 1, ' ', 0)
139 + buf := new(bytes.Buffer)
140 + w := tabwriter.NewWriter(buf, 1, 2, 1, ' ', 0)
141 fmt.Fprintln(w, "Hash\tSize\tName\t")
142 for _, link := range object.Links {
143 fmt.Fprintf(w, "%s\t%v\t%s\t\n", link.Hash, link.Size, link.Name)
144 }
145 w.Flush()
146 - return &buf, nil
146 + return buf, nil
147 },
148 },
149 Type: Object{},
@@ -266,9 +266,9 @@ var objectStatCmd = &cmds.Command{
266 cmds.Text: func(res cmds.Response) (io.Reader, error) {
267 ns := res.Output().(*dag.NodeStat)
268
269 - var buf bytes.Buffer
269 + buf := new(bytes.Buffer)
270 w := func(s string, n int) {
271 - fmt.Fprintf(&buf, "%s: %d\n", s, n)
271 + fmt.Fprintf(buf, "%s: %d\n", s, n)
272 }
273 w("NumLinks", ns.NumLinks)
274 w("BlockSize", ns.BlockSize)
@@ -276,7 +276,7 @@ var objectStatCmd = &cmds.Command{
276 w("DataSize", ns.DataSize)
277 w("CumulativeSize", ns.CumulativeSize)
278
279 - return &buf, nil
279 + return buf, nil
280 },
281 },
282 }
core/commands/refs.go
+2 -2
@@ -23,11 +23,11 @@ type KeyList struct {
23 // KeyListTextMarshaler outputs a KeyList as plaintext, one key per line
24 func KeyListTextMarshaler(res cmds.Response) (io.Reader, error) {
25 output := res.Output().(*KeyList)
26 - var buf bytes.Buffer
26 + buf := new(bytes.Buffer)
27 for _, key := range output.Keys {
28 buf.WriteString(key.B58String() + "\n")
29 }
30 - return &buf, nil
30 + return buf, nil
31 }
32
33 var RefsCmd = &cmds.Command{
core/commands/repo.go
+1 -1
@@ -78,7 +78,7 @@ order to reclaim hard disk space.
78 return nil, u.ErrCast()
79 }
80
81 - var buf *bytes.Buffer
81 + buf := new(bytes.Buffer)
82 if quiet {
83 buf = bytes.NewBufferString(string(obj.Key) + "\n")
84 } else {
core/commands/swarm.go
+4 -4
@@ -130,7 +130,7 @@ ipfs swarm addrs lists all addresses this node is aware of.
130 }
131 sort.Sort(sort.StringSlice(ids))
132
133 - var buf bytes.Buffer
133 + buf := new(bytes.Buffer)
134 for _, p := range ids {
135 paddrs := m.Addrs[p]
136 buf.WriteString(fmt.Sprintf("%s (%d)\n", p, len(paddrs)))
@@ -138,7 +138,7 @@ ipfs swarm addrs lists all addresses this node is aware of.
138 buf.WriteString("\t" + addr + "\n")
139 }
140 }
141 - return &buf, nil
141 + return buf, nil
142 },
143 },
144 Type: addrMap{},
@@ -273,12 +273,12 @@ func stringListMarshaler(res cmds.Response) (io.Reader, error) {
273 return nil, errors.New("failed to cast []string")
274 }
275
276 - var buf bytes.Buffer
276 + buf := new(bytes.Buffer)
277 for _, s := range list.Strings {
278 buf.WriteString(s)
279 buf.WriteString("\n")
280 }
281 - return &buf, nil
281 + return buf, nil
282 }
283
284 // parseAddresses is a function that takes in a slice of string peer addresses
core/commands/tour.go
+14 -14
@@ -48,7 +48,7 @@ func tourRunFunc(req cmds.Request, res cmds.Response) {
48 id = tour.TopicID(req.Arguments()[0])
49 }
50
51 - var w bytes.Buffer
51 + w := new(bytes.Buffer)
52 t, err := tourGet(id)
53 if err != nil {
54
@@ -58,17 +58,17 @@ func tourRunFunc(req cmds.Request, res cmds.Response) {
58 // 1) a simple error message
59 // 2) the full list of topics
60
61 - fmt.Fprintln(&w, "ERROR")
62 - fmt.Fprintln(&w, err)
63 - fmt.Fprintln(&w, "")
64 - fprintTourList(&w, tour.TopicID(cfg.Tour.Last))
65 - res.SetOutput(bytes.NewReader(w.Bytes()))
61 + fmt.Fprintln(w, "ERROR")
62 + fmt.Fprintln(w, err)
63 + fmt.Fprintln(w, "")
64 + fprintTourList(w, tour.TopicID(cfg.Tour.Last))
65 + res.SetOutput(w)
66
67 return
68 }
69
70 - fprintTourShow(&w, t)
71 - res.SetOutput(bytes.NewReader(w.Bytes()))
70 + fprintTourShow(w, t)
71 + res.SetOutput(w)
72 }
73
74 var cmdIpfsTourNext = &cmds.Command{
@@ -77,7 +77,7 @@ var cmdIpfsTourNext = &cmds.Command{
77 },
78
79 Run: func(req cmds.Request, res cmds.Response) {
80 - var w bytes.Buffer
80 + w := new(bytes.Buffer)
81 path := req.Context().ConfigRoot
82 cfg, err := req.Context().GetConfig()
83 if err != nil {
@@ -91,7 +91,7 @@ var cmdIpfsTourNext = &cmds.Command{
91 res.SetError(err, cmds.ErrNormal)
92 return
93 }
94 - if err := fprintTourShow(&w, topic); err != nil {
94 + if err := fprintTourShow(w, topic); err != nil {
95 res.SetError(err, cmds.ErrNormal)
96 return
97 }
@@ -106,7 +106,7 @@ var cmdIpfsTourNext = &cmds.Command{
106 }
107 }
108
109 - res.SetOutput(bytes.NewReader(w.Bytes()))
109 + res.SetOutput(w)
110 },
111 }
112
@@ -144,9 +144,9 @@ var cmdIpfsTourList = &cmds.Command{
144 return
145 }
146
147 - var w bytes.Buffer
148 - fprintTourList(&w, tour.TopicID(cfg.Tour.Last))
149 - res.SetOutput(bytes.NewReader(w.Bytes()))
147 + w := new(bytes.Buffer)
148 + fprintTourList(w, tour.TopicID(cfg.Tour.Last))
149 + res.SetOutput(w)
150 },
151 }
152
core/commands/tour_test.go
+2 -2
@@ -18,8 +18,8 @@ This is where we test our beautiful command line interfaces
18 `,
19 },
20 }
21 - var buf bytes.Buffer
22 - err := fprintTourShow(&buf, topic)
21 + buf := new(bytes.Buffer)
22 + err := fprintTourShow(buf, topic)
23 if err != nil {
24 t.Fatal(err)
25 }
core/commands/update.go
+4 -4
@@ -54,14 +54,14 @@ var updateCmd = &cmds.Command{
54 Marshalers: cmds.MarshalerMap{
55 cmds.Text: func(res cmds.Response) (io.Reader, error) {
56 v := res.Output().(*UpdateOutput)
57 - var buf bytes.Buffer
57 + buf := new(bytes.Buffer)
58 if v.NewVersion != v.OldVersion {
59 buf.WriteString(fmt.Sprintf("Successfully updated to IPFS version '%s' (from '%s')\n",
60 v.NewVersion, v.OldVersion))
61 } else {
62 buf.WriteString(fmt.Sprintf("Already updated to latest version ('%s')\n", v.NewVersion))
63 }
64 - return &buf, nil
64 + return buf, nil
65 },
66 },
67 }
@@ -90,14 +90,14 @@ var UpdateCheckCmd = &cmds.Command{
90 Marshalers: cmds.MarshalerMap{
91 cmds.Text: func(res cmds.Response) (io.Reader, error) {
92 v := res.Output().(*UpdateOutput)
93 - var buf bytes.Buffer
93 + buf := new(bytes.Buffer)
94 if v.NewVersion != v.OldVersion {
95 buf.WriteString(fmt.Sprintf("A new version of IPFS is available ('%s', currently running '%s')\n",
96 v.NewVersion, v.OldVersion))
97 } else {
98 buf.WriteString(fmt.Sprintf("Already updated to latest version ('%s')\n", v.NewVersion))
99 }
100 - return &buf, nil
100 + return buf, nil
101 },
102 },
103 }
exchange/bitswap/message/message_test.go
+6 -6
@@ -100,12 +100,12 @@ func TestToNetFromNetPreservesWantList(t *testing.T) {
100 original.AddEntry(u.Key("T"), 1)
101 original.AddEntry(u.Key("F"), 1)
102
103 - var buf bytes.Buffer
104 - if err := original.ToNet(&buf); err != nil {
103 + buf := new(bytes.Buffer)
104 + if err := original.ToNet(buf); err != nil {
105 t.Fatal(err)
106 }
107
108 - copied, err := FromNet(&buf)
108 + copied, err := FromNet(buf)
109 if err != nil {
110 t.Fatal(err)
111 }
@@ -130,12 +130,12 @@ func TestToAndFromNetMessage(t *testing.T) {
130 original.AddBlock(blocks.NewBlock([]byte("F")))
131 original.AddBlock(blocks.NewBlock([]byte("M")))
132
133 - var buf bytes.Buffer
134 - if err := original.ToNet(&buf); err != nil {
133 + buf := new(bytes.Buffer)
134 + if err := original.ToNet(buf); err != nil {
135 t.Fatal(err)
136 }
137
138 - m2, err := FromNet(&buf)
138 + m2, err := FromNet(buf)
139 if err != nil {
140 t.Fatal(err)
141 }
merkledag/traverse/traverse_test.go
+1 -1
@@ -317,7 +317,7 @@ func TestBFSSkip(t *testing.T) {
317 func testWalkOutputs(t *testing.T, root *mdag.Node, opts Options, expect []byte) {
318 expect = bytes.TrimLeft(expect, "\n")
319
320 - var buf bytes.Buffer
320 + buf := new(bytes.Buffer)
321 walk := func(current State) error {
322 s := fmt.Sprintf("%d %s\n", current.Depth, current.Node.Data)
323 t.Logf("walk: %s", s)
p2p/crypto/secio/protocol.go
+2 -2
@@ -218,7 +218,7 @@ func (s *secureSession) runHandshake() error {
218 s.local.ephemeralPubKey, genSharedKey, err = ci.GenerateEKeyPair(s.local.curveT)
219
220 // Gather corpus to sign.
221 - var selectionOut bytes.Buffer
221 + selectionOut := new(bytes.Buffer)
222 selectionOut.Write(proposeOutBytes)
223 selectionOut.Write(proposeInBytes)
224 selectionOut.Write(s.local.ephemeralPubKey)
@@ -249,7 +249,7 @@ func (s *secureSession) runHandshake() error {
249 // get their ephemeral pub key
250 s.remote.ephemeralPubKey = exchangeIn.GetEpubkey()
251
252 - var selectionIn bytes.Buffer
252 + selectionIn := new(bytes.Buffer)
253 selectionIn.Write(proposeInBytes)
254 selectionIn.Write(proposeOutBytes)
255 selectionIn.Write(s.remote.ephemeralPubKey)
p2p/protocol/mux_test.go
+4 -4
@@ -16,8 +16,8 @@ var testCases = map[string]string{
16
17 func TestWrite(t *testing.T) {
18 for k, v := range testCases {
19 - var buf bytes.Buffer
20 - if err := WriteHeader(&buf, ID(k)); err != nil {
19 + buf := new(bytes.Buffer)
20 + if err := WriteHeader(buf, ID(k)); err != nil {
21 t.Fatal(err)
22 }
23
@@ -46,13 +46,13 @@ func TestHandler(t *testing.T) {
46 m.SetHandler("/ipfs/dksnafkasnfkdajfkdajfdsjadosiaaodj", h("bitswap"))
47
48 for k, v := range testCases {
49 - var buf bytes.Buffer
49 + buf := new(bytes.Buffer)
50 if _, err := buf.Write([]byte(v)); err != nil {
51 t.Error(err)
52 continue
53 }
54
55 - name, err := ReadHeader(&buf)
55 + name, err := ReadHeader(buf)
56 if err != nil {
57 t.Error(err)
58 continue
repo/config/config.go
+6 -6
@@ -86,24 +86,24 @@ func Marshal(value interface{}) ([]byte, error) {
86 }
87
88 func FromMap(v map[string]interface{}) (*Config, error) {
89 - var buf bytes.Buffer
90 - if err := json.NewEncoder(&buf).Encode(v); err != nil {
89 + buf := new(bytes.Buffer)
90 + if err := json.NewEncoder(buf).Encode(v); err != nil {
91 return nil, err
92 }
93 var conf Config
94 - if err := json.NewDecoder(&buf).Decode(&conf); err != nil {
94 + if err := json.NewDecoder(buf).Decode(&conf); err != nil {
95 return nil, fmt.Errorf("Failure to decode config: %s", err)
96 }
97 return &conf, nil
98 }
99
100 func ToMap(conf *Config) (map[string]interface{}, error) {
101 - var buf bytes.Buffer
102 - if err := json.NewEncoder(&buf).Encode(conf); err != nil {
101 + buf := new(bytes.Buffer)
102 + if err := json.NewEncoder(buf).Encode(conf); err != nil {
103 return nil, err
104 }
105 var m map[string]interface{}
106 - if err := json.NewDecoder(&buf).Decode(&m); err != nil {
106 + if err := json.NewDecoder(buf).Decode(&m); err != nil {
107 return nil, fmt.Errorf("Failure to decode config: %s", err)
108 }
109 return m, nil
test/integration/addcat_test.go
+4 -4
@@ -79,8 +79,8 @@ func AddCatPowers(conf testutil.LatencyConfig, megabytesMax int64) error {
79 }
80
81 func RandomBytes(n int64) []byte {
82 - var data bytes.Buffer
83 - random.WritePseudoRandomBytes(n, &data, kSeed)
82 + data := new(bytes.Buffer)
83 + random.WritePseudoRandomBytes(n, data, kSeed)
84 return data.Bytes()
85 }
86
@@ -137,8 +137,8 @@ func DirectAddCat(data []byte, conf testutil.LatencyConfig) error {
137 }
138
139 // verify
140 - var bufout bytes.Buffer
141 - io.Copy(&bufout, readerCatted)
140 + bufout := new(bytes.Buffer)
141 + io.Copy(bufout, readerCatted)
142 if 0 != bytes.Compare(bufout.Bytes(), data) {
143 return errors.New("catted data does not match added data")
144 }
test/integration/bench_cat_test.go
+2 -2
@@ -86,8 +86,8 @@ func benchCat(b *testing.B, data []byte, conf testutil.LatencyConfig) error {
86 }
87
88 // verify
89 - var bufout bytes.Buffer
90 - io.Copy(&bufout, readerCatted)
89 + bufout := new(bytes.Buffer)
90 + io.Copy(bufout, readerCatted)
91 if 0 != bytes.Compare(bufout.Bytes(), data) {
92 return errors.New("catted data does not match added data")
93 }
test/integration/grandcentral_test.go
+2 -2
@@ -68,8 +68,8 @@ func RunSupernodeBootstrappedAddCat(data []byte, conf testutil.LatencyConfig) er
68 }
69
70 // verify
71 - var bufout bytes.Buffer
72 - io.Copy(&bufout, readerCatted)
71 + bufout := new(bytes.Buffer)
72 + io.Copy(bufout, readerCatted)
73 if 0 != bytes.Compare(bufout.Bytes(), data) {
74 return errors.New("catted data does not match added data")
75 }
test/integration/three_legged_cat_test.go
+2 -2
@@ -117,8 +117,8 @@ func RunThreeLeggedCat(data []byte, conf testutil.LatencyConfig) error {
117 }
118
119 // verify
120 - var bufout bytes.Buffer
121 - io.Copy(&bufout, readerCatted)
120 + bufout := new(bytes.Buffer)
121 + io.Copy(bufout, readerCatted)
122 if 0 != bytes.Compare(bufout.Bytes(), data) {
123 return errors.New("catted data does not match added data")
124 }
test/supernode_client/main.go
+2 -2
@@ -180,8 +180,8 @@ func runFileCattingWorker(ctx context.Context, n *core.IpfsNode) error {
180 defer dummy.Close()
181 var i int64 = 1
182 for {
183 - var buf bytes.Buffer
184 - if err := random.WritePseudoRandomBytes(sizeOfIthFile(i), &buf, *seed); err != nil {
183 + buf := new(bytes.Buffer)
184 + if err := random.WritePseudoRandomBytes(sizeOfIthFile(i), buf, *seed); err != nil {
185 log.Fatal(err)
186 }
187 // add to a dummy node to discover the key
util/ctx/ctxio_test.go
+2 -2
@@ -49,8 +49,8 @@ func TestReader(t *testing.T) {
49 }
50
51 func TestWriter(t *testing.T) {
52 - var buf bytes.Buffer
53 - w := NewWriter(context.Background(), &buf)
52 + buf := new(bytes.Buffer)
53 + w := NewWriter(context.Background(), buf)
54
55 // write three
56 n, err := w.Write([]byte("abc"))
util/testutil/gen.go
+1 -1
@@ -109,7 +109,7 @@ func (p *PeerNetParams) checkKeys() error {
109 return errors.New("p.ID does not match p.PubKey")
110 }
111
112 - var buf bytes.Buffer
112 + buf := new(bytes.Buffer)
113 buf.Write([]byte("hello world. this is me, I swear."))
114 b := buf.Bytes()
115