MCPcopy Create free account
hub / github.com/dunglas/httpsfv / parseDictionary

Function parseDictionary

dictionary.go:120–167  ·  view source on GitHub ↗
(s *scanner)

Source from the content-addressed store, hash-verified

118}
119
120func parseDictionary(s *scanner) (*Dictionary, error) {
121 d := NewDictionary()
122
123 for !s.eof() {
124 k, err := parseKey(s)
125 if err != nil {
126 return nil, err
127 }
128
129 var m Member
130
131 if !s.eof() && s.data[s.off] == '=' {
132 s.off++
133 m, err = parseItemOrInnerList(s)
134
135 if err != nil {
136 return nil, err
137 }
138 } else {
139 p, err := parseParams(s)
140 if err != nil {
141 return nil, err
142 }
143 m = Item{true, p}
144 }
145
146 d.Add(k, m)
147 s.scanWhileOWS()
148
149 if s.eof() {
150 return d, nil
151 }
152
153 if s.data[s.off] != ',' {
154 return nil, &UnmarshalError{s.off, ErrInvalidDictionaryFormat}
155 }
156 s.off++
157
158 s.scanWhileOWS()
159
160 if s.eof() {
161 // there is a trailing comma
162 return nil, &UnmarshalError{s.off, ErrInvalidDictionaryFormat}
163 }
164 }
165
166 return d, nil
167}

Callers 1

UnmarshalDictionaryFunction · 0.85

Calls 7

AddMethod · 0.95
NewDictionaryFunction · 0.85
parseKeyFunction · 0.85
parseItemOrInnerListFunction · 0.85
parseParamsFunction · 0.85
eofMethod · 0.80
scanWhileOWSMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…