aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/lunixbochs/struc/custom.go
blob: c468dce5cb1ac51c04dc0f250ef97d97f21511af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package struc

import (
	"io"
	"reflect"
)

type Custom interface {
	Pack(p []byte, opt *Options) (int, error)
	Unpack(r io.Reader, length int, opt *Options) error
	Size(opt *Options) int
	String() string
}

type customFallback struct {
	custom Custom
}

func (c customFallback) Pack(p []byte, val reflect.Value, opt *Options) (int, error) {
	return c.custom.Pack(p, opt)
}

func (c customFallback) Unpack(r io.Reader, val reflect.Value, opt *Options) error {
	return c.custom.Unpack(r, 1, opt)
}

func (c customFallback) Sizeof(val reflect.Value, opt *Options) int {
	return c.custom.Size(opt)
}

func (c customFallback) String() string {
	return c.custom.String()
}