func New(buf []byte, options Options) *Cmp {
	return NewMultiple(buf, options, nil, true)
}
New creates Cmp for single comparison mode.
package equalfile
import (
	"bytes"
	"encoding/hex"
	"fmt"
	"hash"
	"io"
	"os"
)
const defaultMaxSize = 10000000000
const defaultBufSize = 20000
type Options struct {
	Debug         bool  
	ForceFileRead bool  
	MaxSize int64
}
type Cmp struct {
	Opt Options
	readCount int
	readMin   int
	readMax   int
	readSum   int64
	hashType         hash.Hash
	hashMatchCompare bool
	hashTable        map[string]hashSum
	buf []byte
}
type hashSum struct {
	result []byte
	err    error
}
func NewMultiple(buf []byte, options Options, h hash.Hash, compareOnMatch bool) *Cmp {
	c := &Cmp{
		Opt:              options,
		hashType:         h,
		hashMatchCompare: compareOnMatch,
		hashTable:        map[string]hashSum{},
		buf:              buf,
	}
	if c.buf == nil || len(c.buf) == 0 {
		c.buf = make([]byte, defaultBufSize)
	}
	c.debugf("New: bufSize=%d\n", len(c.buf))
	return c
}