func (matcher *PgMatcher) IsMatched() bool {
	return matcher.binaryMatcher.IsMatched()
}
IsMatched returns true if pgMatcher or binaryMatcher has match
package zone
var (
	ZoneTagSymbol     byte = 'D'
	ZoneIDBegin            = []byte{ZoneTagSymbol, ZoneTagSymbol, ZoneTagSymbol, ZoneTagSymbol, ZoneTagSymbol, ZoneTagSymbol, ZoneTagSymbol, ZoneTagSymbol}
	ZoneTagLength          = len(ZoneIDBegin)
	ZoneIDLength           = 16
	ZoneIDBlockLength      = int(ZoneTagLength + ZoneIDLength)
)
type DbByteReader interface {
	ReadByte(c byte) (bool, byte, error)
	GetBuffered() []byte
	Reset()
}
type MatcherFactory interface {
	createMatcher() matcher
}
type PgMatcherFactory struct{}
func NewPgMatcherFactory() MatcherFactory {
	return &PgMatcherFactory{}
}
func (*PgMatcherFactory) createMatcher() matcher {
	return newPgMatcher(NewBinaryByteReader())
}
type matcher interface {
	Match(byte) bool
	Reset()
	GetZoneID() []byte
	IsMatched() bool
	HasAnyMatch() bool
}
type PgMatcher struct {
	binaryMatcher matcher
}
func newPgMatcher(dbReader DbByteReader) matcher {
	return &PgMatcher{
		binaryMatcher: newBaseMatcher(NewBinaryByteReader()),
	}
}
func (matcher *PgMatcher) Match(c byte) bool {
	binMatched := matcher.binaryMatcher.Match(c)
	return binMatched
}
func (matcher *PgMatcher) HasAnyMatch() bool {
	return matcher.binaryMatcher.HasAnyMatch()
}
func (matcher *PgMatcher) GetZoneID() []byte {
	if matcher.binaryMatcher.IsMatched() {
		return matcher.binaryMatcher.GetZoneID()
	}
	return []byte{}
}
func (matcher *PgMatcher) Reset() {
	matcher.binaryMatcher.Reset()
}