• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ghettovoice / gosip / 18541436410

15 Oct 2025 08:14PM UTC coverage: 38.19% (+0.2%) from 37.954%
18541436410

push

github

ghettovoice
Use render options in send request/response methods

8 of 8 new or added lines in 1 file covered. (100.0%)

583 existing lines in 48 files now uncovered.

5347 of 14001 relevant lines covered (38.19%)

5.24 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

74.14
/header/accept_encoding.go
1
package header
2

3
import (
4
        "fmt"
5
        "io"
6
        "slices"
7
        "strconv"
8

9
        "braces.dev/errtrace"
10
        "github.com/ghettovoice/abnf"
11

12
        "github.com/ghettovoice/gosip/internal/abnfutil"
13
        "github.com/ghettovoice/gosip/internal/grammar"
14
        "github.com/ghettovoice/gosip/internal/stringutil"
15
)
16

17
type AcceptEncoding []EncodingRange
18

19
func (AcceptEncoding) CanonicName() Name { return "Accept-Encoding" }
8✔
20

UNCOV
21
func (AcceptEncoding) CompactName() Name { return "Accept-Encoding" }
×
22

23
func (hdr AcceptEncoding) RenderTo(w io.Writer, _ ...any) error {
9✔
24
        if hdr == nil {
10✔
25
                return nil
1✔
26
        }
1✔
27
        if _, err := fmt.Fprint(w, hdr.CanonicName(), ": "); err != nil {
8✔
UNCOV
28
                return errtrace.Wrap(err)
×
UNCOV
29
        }
×
30
        return errtrace.Wrap(hdr.renderValue(w))
8✔
31
}
32

33
func (hdr AcceptEncoding) renderValue(w io.Writer) error {
11✔
34
        return errtrace.Wrap(renderHdrEntries(w, hdr))
11✔
35
}
11✔
36

37
func (hdr AcceptEncoding) Render(opts ...any) string {
7✔
38
        if hdr == nil {
8✔
39
                return ""
1✔
40
        }
1✔
41
        sb := stringutil.GetStringBuilder()
6✔
42
        defer stringutil.FreeStringBuilder(sb)
6✔
43
        _ = hdr.RenderTo(sb, opts...)
6✔
44
        return sb.String()
6✔
45
}
46

47
func (hdr AcceptEncoding) String() string {
3✔
48
        sb := stringutil.GetStringBuilder()
3✔
49
        defer stringutil.FreeStringBuilder(sb)
3✔
50
        _ = hdr.renderValue(sb)
3✔
51
        return sb.String()
3✔
52
}
3✔
53

54
func (hdr AcceptEncoding) Format(f fmt.State, verb rune) {
×
55
        switch verb {
×
56
        case 's':
×
57
                if f.Flag('+') {
×
58
                        _ = hdr.RenderTo(f)
×
59
                        return
×
60
                }
×
61
                fmt.Fprint(f, hdr.String())
×
62
                return
×
63
        case 'q':
×
64
                fmt.Fprint(f, strconv.Quote(hdr.String()))
×
65
                return
×
66
        default:
×
67
                type hideMethods AcceptEncoding
×
68
                type AcceptEncoding hideMethods
×
UNCOV
69
                fmt.Fprintf(f, fmt.FormatString(f, verb), AcceptEncoding(hdr))
×
UNCOV
70
                return
×
71
        }
72
}
73

74
func (hdr AcceptEncoding) Clone() Header { return cloneHdrEntries(hdr) }
3✔
75

76
func (hdr AcceptEncoding) Equal(val any) bool {
26✔
77
        var other AcceptEncoding
26✔
78
        switch v := val.(type) {
26✔
79
        case AcceptEncoding:
23✔
80
                other = v
23✔
81
        case *AcceptEncoding:
2✔
82
                if v == nil {
3✔
83
                        return false
1✔
84
                }
1✔
85
                other = *v
1✔
86
        default:
1✔
87
                return false
1✔
88
        }
89
        return slices.EqualFunc(hdr, other, func(rng1, rng2 EncodingRange) bool { return rng1.Equal(rng2) })
42✔
90
}
91

92
func (hdr AcceptEncoding) IsValid() bool {
5✔
93
        return hdr != nil && !slices.ContainsFunc(hdr, func(rng EncodingRange) bool { return !rng.IsValid() })
9✔
94
}
95

96
func buildFromAcceptEncodingNode(node *abnf.Node) AcceptEncoding {
3✔
97
        rngNodes := node.GetNodes("encoding")
3✔
98
        hdr := make(AcceptEncoding, len(rngNodes))
3✔
99
        for i, rngNode := range rngNodes {
6✔
100
                hdr[i] = EncodingRange{
3✔
101
                        Encoding: abnfutil.MustGetNode(rngNode, "codings").String(),
3✔
102
                        Params:   buildFromHeaderParamNodes(rngNode.GetNodes("accept-param"), nil),
3✔
103
                }
3✔
104
        }
3✔
105
        return hdr
3✔
106
}
107

108
type EncodingRange struct {
109
        Encoding string
110
        Params   Values
111
}
112

113
func (rng EncodingRange) String() string {
13✔
114
        sb := stringutil.GetStringBuilder()
13✔
115
        defer stringutil.FreeStringBuilder(sb)
13✔
116
        sb.WriteString(rng.Encoding)
13✔
117
        _ = renderHdrParams(sb, rng.Params, false)
13✔
118
        return sb.String()
13✔
119
}
13✔
120

121
func (rng EncodingRange) Format(f fmt.State, verb rune) {
11✔
122
        switch verb {
11✔
123
        case 's':
×
124
                fmt.Fprint(f, rng.String())
×
125
                return
×
126
        case 'q':
×
UNCOV
127
                fmt.Fprint(f, strconv.Quote(rng.String()))
×
UNCOV
128
                return
×
129
        default:
11✔
130
                if !f.Flag('+') && !f.Flag('#') {
22✔
131
                        fmt.Fprint(f, rng.String())
11✔
132
                        return
11✔
133
                }
11✔
134

135
                type hideMethods EncodingRange
×
136
                type EncodingRange hideMethods
×
UNCOV
137
                fmt.Fprintf(f, fmt.FormatString(f, verb), EncodingRange(rng))
×
UNCOV
138
                return
×
139
        }
140
}
141

142
func (rng EncodingRange) Equal(val any) bool {
34✔
143
        var other EncodingRange
34✔
144
        switch v := val.(type) {
34✔
145
        case EncodingRange:
31✔
146
                other = v
31✔
147
        case *EncodingRange:
2✔
148
                if v == nil {
3✔
149
                        return false
1✔
150
                }
1✔
151
                other = *v
1✔
152
        default:
1✔
153
                return false
1✔
154
        }
155
        return stringutil.LCase(rng.Encoding) == stringutil.LCase(other.Encoding) && compareHdrParams(rng.Params, other.Params, map[string]bool{"q": true})
32✔
156
}
157

158
func (rng EncodingRange) IsValid() bool {
8✔
159
        return grammar.IsToken(rng.Encoding) &&
8✔
160
                validateHdrParams(rng.Params)
8✔
161
}
8✔
162

163
func (rng EncodingRange) IsZero() bool { return rng.Encoding == "" && len(rng.Params) == 0 }
2✔
164

165
func (rng EncodingRange) Clone() EncodingRange {
4✔
166
        rng.Params = rng.Params.Clone()
4✔
167
        return rng
4✔
168
}
4✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc