func IsValidFragment(fragment int) (err error) {
	if fragment < MinFragment || fragment > MaxFragment {
		err = errInvalidFragmentLen
	}
	return
}
IsValidFragment validate fragment size.
package fragmentation
import (
	"container/list"
	"fmt"
	"github.com/rsocket/rsocket-go/core"
	"github.com/rsocket/rsocket-go/internal/common"
	"github.com/rsocket/rsocket-go/internal/u24"
	"github.com/rsocket/rsocket-go/payload"
)
const (
	MinFragment = core.FrameHeaderLen + 4
	MaxFragment = u24.MaxUint24 - 3
)
var errInvalidFragmentLen = fmt.Errorf("invalid fragment: [%d,%d]", MinFragment, MaxFragment)
type HeaderAndPayload interface {
	payload.Payload
	Header() core.FrameHeader
}
type Joiner interface {
	common.Releasable
	HeaderAndPayload
	First() core.BufferedFrame
	Push(elem HeaderAndPayload) (end bool)
}
func NewJoiner(first HeaderAndPayload) Joiner {
	root := list.New()
	root.PushBack(first)
	return &implJoiner{
		root: root,
	}
}