Skip to content

Commit 673c093

Browse files
committed
replace bytes.Buffer with strings.Builder
1 parent ae40bb2 commit 673c093

File tree

3 files changed

+43
-45
lines changed

3 files changed

+43
-45
lines changed

format.go

+18-18
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
package main
33

44
import (
5-
"bytes"
65
"math"
6+
"strings"
77
)
88

99
// MaxLengths is used to format spaces for printing
@@ -36,23 +36,23 @@ type FmtPrint struct {
3636

3737
// fmtColHdr formats column headers and returns a string
3838
func fmtColHdr(max *MaxLengths) string {
39-
buf := bytes.Buffer{}
40-
buf.WriteString(" Product")
41-
buf.WriteString(setSpc(max.Price, "Price"))
42-
buf.WriteString(setSpc(max.Size, "Last Size"))
43-
buf.WriteString(setSpc(max.Change, "Change"))
44-
buf.WriteString(setSpc(max.Bid, "Bid"))
45-
buf.WriteString(setSpc(max.Ask, "Ask"))
46-
buf.WriteString(setSpc(max.High, "High"))
47-
buf.WriteString(setSpc(max.Low, "Low"))
48-
buf.WriteString(setSpc(max.Volume, "Volume"))
49-
buf.WriteString(" ")
50-
return buf.String()
39+
b := strings.Builder{}
40+
b.WriteString(" Product")
41+
b.WriteString(setSpc(max.Price, "Price"))
42+
b.WriteString(setSpc(max.Size, "Last Size"))
43+
b.WriteString(setSpc(max.Change, "Change"))
44+
b.WriteString(setSpc(max.Bid, "Bid"))
45+
b.WriteString(setSpc(max.Ask, "Ask"))
46+
b.WriteString(setSpc(max.High, "High"))
47+
b.WriteString(setSpc(max.Low, "Low"))
48+
b.WriteString(setSpc(max.Volume, "Volume"))
49+
b.WriteString(" ")
50+
return b.String()
5151
}
5252

5353
// fmtTitle returns header(or footer with empty string parameter) centered based on total max length, left margin(1), product column(7), and spaces between columns(48)
5454
func fmtTitle(title string, total int) string {
55-
buf := bytes.Buffer{}
55+
b := strings.Builder{}
5656
var lMargin, rMargin int
5757
whitespace := total - len(title)
5858

@@ -65,11 +65,11 @@ func fmtTitle(title string, total int) string {
6565
}
6666

6767
for i := 0; i < lMargin; i++ {
68-
buf.WriteString(" ")
68+
b.WriteString(" ")
6969
}
70-
buf.WriteString(title)
70+
b.WriteString(title)
7171
for i := 0; i < rMargin; i++ {
72-
buf.WriteString(" ")
72+
b.WriteString(" ")
7373
}
74-
return buf.String()
74+
return b.String()
7575
}

product.go

+21-22
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
package main
33

44
import (
5-
"bytes"
65
"strings"
76

87
"github.com/fatih/color"
@@ -37,18 +36,18 @@ type Product struct {
3736

3837
// fmtRow formats all Product data into a single row so it can be printed
3938
func (p Product) fmtRow() string {
40-
buf := bytes.Buffer{}
41-
buf.WriteString(" ")
42-
buf.WriteString(strings.Join(strings.Split(p.ID, "-"), "/"))
43-
buf.WriteString(p.Price)
44-
buf.WriteString(p.Size)
45-
buf.WriteString(p.Change)
46-
buf.WriteString(p.Bid)
47-
buf.WriteString(p.Ask)
48-
buf.WriteString(p.High)
49-
buf.WriteString(p.Low)
50-
buf.WriteString(p.Volume)
51-
return buf.String()
39+
b := strings.Builder{}
40+
b.WriteString(" ")
41+
b.WriteString(strings.Join(strings.Split(p.ID, "-"), "/"))
42+
b.WriteString(p.Price)
43+
b.WriteString(p.Size)
44+
b.WriteString(p.Change)
45+
b.WriteString(p.Bid)
46+
b.WriteString(p.Ask)
47+
b.WriteString(p.High)
48+
b.WriteString(p.Low)
49+
b.WriteString(p.Volume)
50+
return b.String()
5251
}
5352

5453
// Stats contains 24 hour data from REST API:
@@ -71,27 +70,27 @@ type Ticker struct {
7170

7271
// setSpc adds space in front of string based on max length for single quote
7372
func setSpc(max int, orig string) string {
74-
buf := bytes.Buffer{}
75-
buf.WriteString(" ")
73+
b := strings.Builder{}
74+
b.WriteString(" ")
7675
diff := max - len(orig)
7776
if diff > 0 {
7877
for i := 0; i < diff; i++ {
79-
buf.WriteString(" ")
78+
b.WriteString(" ")
8079
}
8180
}
82-
buf.WriteString(orig)
83-
return buf.String()
81+
b.WriteString(orig)
82+
return b.String()
8483
}
8584

8685
// setSpcStrm adds spaces to string according to max lengths calculated in single quote
8786
func setSpcStrm(max int, orig string) string {
88-
buf := bytes.Buffer{}
87+
b := strings.Builder{}
8988
diff := 5 + max - len(orig)
9089
if diff > 0 {
9190
for i := 0; i < diff; i++ {
92-
buf.WriteString(" ")
91+
b.WriteString(" ")
9392
}
9493
}
95-
buf.WriteString(orig)
96-
return buf.String()
94+
b.WriteString(orig)
95+
return b.String()
9796
}

round.go

+4-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
package main
33

44
import (
5-
"bytes"
65
"fmt"
76
"strconv"
87
"strings"
@@ -50,10 +49,10 @@ func setDelta(price string, open string) string {
5049
p, _ := strconv.ParseFloat(price, 64)
5150
o, _ := strconv.ParseFloat(open, 64)
5251
delta := ((p - o) / o) * 100
53-
buf := bytes.Buffer{}
54-
buf.WriteString(strconv.FormatFloat(delta, 'f', 2, 64))
55-
buf.WriteString("%")
56-
return buf.String()
52+
b := strings.Builder{}
53+
b.WriteString(strconv.FormatFloat(delta, 'f', 2, 64))
54+
b.WriteString("%")
55+
return b.String()
5756
}
5857

5958
// SetColor uses the delta filed of Product type to set color either red or green

0 commit comments

Comments
 (0)