encode.ptrEncoder.encode   A
last analyzed

Complexity

Conditions 2

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
cc 2
eloc 4
dl 0
loc 6
ccs 0
cts 3
cp 0
crap 6
rs 10
c 0
b 0
f 0
nop 1
1
package encode
2
3
import (
4
	"reflect"
5
6
	"github.com/et-nik/binngo/binn"
7
)
8
9
type ptrEncoder struct {
10
	elemEnc encoderFunc
11
}
12
13
func newPtrEncoder(t reflect.Type) encoderFunc {
14
	enc := ptrEncoder{newTypeEncoder(t.Elem())}
15
	return enc.encode
16
}
17
18
func (pe ptrEncoder) encode(v reflect.Value) ([]byte, error) {
19
	if v.IsNil() {
20
		return []byte{binn.Null}, nil
21
	}
22
23
	return pe.elemEnc(v.Elem())
24
}
25