Total Lines | 22 |
Duplicated Lines | 0 % |
Coverage | 80% |
Changes | 0 |
1 | package decode |
||
2 | |||
3 | import ( |
||
4 | "io" |
||
5 | "reflect" |
||
6 | ) |
||
7 | |||
8 | type Decoder struct { |
||
9 | r io.Reader |
||
10 | } |
||
11 | |||
12 | func NewDecoder(r io.Reader) *Decoder { |
||
13 | 1 | return &Decoder{r} |
|
14 | } |
||
15 | |||
16 | func (dec *Decoder) Decode(v interface{}) error { |
||
17 | 1 | rv := reflect.ValueOf(v) |
|
18 | 1 | if rv.Kind() != reflect.Ptr || rv.IsNil() { |
|
19 | return &InvalidUnmarshalError{reflect.TypeOf(v)} |
||
20 | } |
||
21 | |||
22 | 1 | return decode(dec.r, v) |
|
23 | } |
||
24 |