MCPcopy
hub / github.com/gogo/protobuf / Write

Method Write

proto/text.go:98–145  ·  view source on GitHub ↗
(p []byte)

Source from the content-addressed store, hash-verified

96}
97
98func (w *textWriter) Write(p []byte) (n int, err error) {
99 newlines := bytes.Count(p, newline)
100 if newlines == 0 {
101 if !w.compact && w.complete {
102 w.writeIndent()
103 }
104 n, err = w.w.Write(p)
105 w.complete = false
106 return n, err
107 }
108
109 frags := bytes.SplitN(p, newline, newlines+1)
110 if w.compact {
111 for i, frag := range frags {
112 if i > 0 {
113 if err := w.w.WriteByte(' '); err != nil {
114 return n, err
115 }
116 n++
117 }
118 nn, err := w.w.Write(frag)
119 n += nn
120 if err != nil {
121 return n, err
122 }
123 }
124 return n, nil
125 }
126
127 for i, frag := range frags {
128 if w.complete {
129 w.writeIndent()
130 }
131 nn, err := w.w.Write(frag)
132 n += nn
133 if err != nil {
134 return n, err
135 }
136 if i+1 < len(frags) {
137 if err := w.w.WriteByte('\n'); err != nil {
138 return n, err
139 }
140 n++
141 }
142 }
143 w.complete = len(frags[len(frags)-1]) == 0
144 return n, nil
145}
146
147func (w *textWriter) WriteByte(c byte) error {
148 if w.compact && c == '\n' {

Callers 15

WriteStringMethod · 0.95
MarshalMethod · 0.95
GenerateMethod · 0.45
writeProto3AnyMethod · 0.45
writeStructMethod · 0.45
writeAnyMethod · 0.45
writeStringFunction · 0.45
writeUnknownStructFunction · 0.45
writeIndentMethod · 0.45
WriteFunction · 0.45
generateMethod · 0.45

Calls 2

writeIndentMethod · 0.95
WriteByteMethod · 0.65

Tested by 2

TestVarintErrorFunction · 0.36