func (s StatusCode) Empty() bool {
	return s == 0
}
Empty reports whether the code is empty.
Empty code has no any meaning neither app level codes nor other.
This method is useful just to check that code is golang default value 0.
package ws
import (
	"encoding/binary"
)
const (
	MaxControlFramePayloadSize = 125
)
type OpCode byte
const (
	OpContinuation OpCode = 0x0
	OpText         OpCode = 0x1
	OpBinary       OpCode = 0x2
	OpClose        OpCode = 0x8
	OpPing         OpCode = 0x9
	OpPong         OpCode = 0xa
)
func (c OpCode) IsControl() bool {
	return c&0x8 != 0
}
func (c OpCode) IsData() bool {
	return c&0x8 == 0
}
func (c OpCode) IsReserved() bool {
	return (0x3 <= c && c <= 0x7) || (0xb <= c && c <= 0xf)
}
type StatusCode uint16
type StatusCodeRange struct {
	Min, Max StatusCode
}
var (
	StatusRangeNotInUse    = StatusCodeRange{0, 999}
	StatusRangeProtocol    = StatusCodeRange{1000, 2999}
	StatusRangeApplication = StatusCodeRange{3000, 3999}
	StatusRangePrivate     = StatusCodeRange{4000, 4999}
)
const (
	StatusNormalClosure           StatusCode = 1000
	StatusGoingAway               StatusCode = 1001
	StatusProtocolError           StatusCode = 1002
	StatusUnsupportedData         StatusCode = 1003
	StatusNoMeaningYet            StatusCode = 1004
	StatusInvalidFramePayloadData StatusCode = 1007
	StatusPolicyViolation         StatusCode = 1008
	StatusMessageTooBig           StatusCode = 1009
	StatusMandatoryExt            StatusCode = 1010
	StatusInternalServerError     StatusCode = 1011
	StatusTLSHandshake            StatusCode = 1015
	StatusAbnormalClosure StatusCode = 1006
	StatusNoStatusRcvd StatusCode = 1005
)
func (s StatusCode) In(r StatusCodeRange) bool {
	return r.Min <= s && s <= r.Max
}