package struc

import (
	"io"
	"reflect"
)

type Packer interface {
	Pack(buf []byte, val reflect.Value, options *Options) (int, error)
	Unpack(r io.Reader, val reflect.Value, options *Options) error
	Sizeof(val reflect.Value, options *Options) int
	String() string
}