...
1 package http
2
3 import (
4 "strings"
5 )
6
7
8 type UserAgentBuilder struct {
9 sb strings.Builder
10 }
11
12
13 func NewUserAgentBuilder() *UserAgentBuilder {
14 return &UserAgentBuilder{sb: strings.Builder{}}
15 }
16
17
18 func (u *UserAgentBuilder) AddKey(key string) {
19 u.appendTo(key)
20 }
21
22
23 func (u *UserAgentBuilder) AddKeyValue(key, value string) {
24 u.appendTo(key + "/" + value)
25 }
26
27
28 func (u *UserAgentBuilder) Build() string {
29 return u.sb.String()
30 }
31
32 func (u *UserAgentBuilder) appendTo(value string) {
33 if u.sb.Len() > 0 {
34 u.sb.WriteRune(' ')
35 }
36 u.sb.WriteString(value)
37 }
38
View as plain text