summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/lunixbochs/struc/custom.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/lunixbochs/struc/custom.go')
-rw-r--r--vendor/github.com/lunixbochs/struc/custom.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/vendor/github.com/lunixbochs/struc/custom.go b/vendor/github.com/lunixbochs/struc/custom.go
new file mode 100644
index 0000000..c468dce
--- /dev/null
+++ b/vendor/github.com/lunixbochs/struc/custom.go
@@ -0,0 +1,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()
+}