drainSingle drains a single level of object or array. The decoder has to guarantee the beginning delim (i.e. '{' or '[') has been consumed.
(dec *json.Decoder)
| 708 | // |
| 709 | // The decoder has to guarantee the beginning delim (i.e. '{' or '[') has been consumed. |
| 710 | func drainSingle(dec *json.Decoder) error { |
| 711 | for dec.More() { |
| 712 | tk, err := dec.Token() |
| 713 | if err != nil { |
| 714 | return err |
| 715 | } |
| 716 | if delim, isDelim := tk.(json.Delim); isDelim { |
| 717 | switch delim { |
| 718 | case '{': |
| 719 | if err = drainSingle(dec); err != nil { |
| 720 | return err |
| 721 | } |
| 722 | case '[': |
| 723 | if err = drainSingle(dec); err != nil { |
| 724 | return err |
| 725 | } |
| 726 | } |
| 727 | } |
| 728 | } |
| 729 | |
| 730 | // consumes the ending delim |
| 731 | if _, err := dec.Token(); err != nil { |
| 732 | return err |
| 733 | } |
| 734 | |
| 735 | return nil |
| 736 | } |
| 737 | |
| 738 | // JSON pointer encoding: ~0 => ~ ~1 => / ... and vice versa. |
| 739 |
no outgoing calls
no test coverage detected
searching dependent graphs…