Passed
Push — master ( cbd69a...c32edb )
by Nikita
01:43
created

decode/stream.go   A

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Test Coverage

Coverage 80%

Importance

Changes 0
Metric Value
cc 4
eloc 13
dl 0
loc 22
ccs 4
cts 5
cp 0.8
crap 4.128
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A decode.*Decoder.Decode 0 7 3
A decode.NewDecoder 0 2 1
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