UnmarshalItem parses an item as defined in https://httpwg.org/specs/rfc9651.html#parse-item.
(v []string)
| 38 | // UnmarshalItem parses an item as defined in |
| 39 | // https://httpwg.org/specs/rfc9651.html#parse-item. |
| 40 | func UnmarshalItem(v []string) (Item, error) { |
| 41 | s := &scanner{ |
| 42 | data: strings.Join(v, ","), |
| 43 | } |
| 44 | |
| 45 | s.scanWhileSp() |
| 46 | |
| 47 | sfv, err := parseItem(s) |
| 48 | if err != nil { |
| 49 | return Item{}, err |
| 50 | } |
| 51 | |
| 52 | s.scanWhileSp() |
| 53 | |
| 54 | if !s.eof() { |
| 55 | return Item{}, &UnmarshalError{off: s.off} |
| 56 | } |
| 57 | |
| 58 | return sfv, nil |
| 59 | } |
| 60 | |
| 61 | func parseItem(s *scanner) (Item, error) { |
| 62 | bi, err := parseBareItem(s) |
searching dependent graphs…