func (e *EndPoint) String() string {
	return stringify.Struct("EndPoint",
		stringify.StructField("value", e.value),
		stringify.StructField("boundType", e.boundType),
	)
}
String returns a human readable version of the EndPoint.
package valuerange
import (
	"github.com/iotaledger/hive.go/marshalutil"
	"github.com/iotaledger/hive.go/stringify"
	"golang.org/x/xerrors"
)
type EndPoint struct {
	value     Value
	boundType BoundType
}
func NewEndPoint(value Value, boundType BoundType) *EndPoint {
	return &EndPoint{
		value:     value,
		boundType: boundType,
	}
}
func EndPointFromBytes(endPointBytes []byte) (endPoint *EndPoint, consumedBytes int, err error) {
	marshalUtil := marshalutil.New(endPointBytes)
	if endPoint, err = EndPointFromMarshalUtil(marshalUtil); err != nil {
		err = xerrors.Errorf("failed to parse EndPoint from MarshalUtil: %w", err)
		return
	}
	consumedBytes = marshalUtil.ReadOffset()
	return
}
func EndPointFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (endPoint *EndPoint, err error) {
	endPoint = &EndPoint{}
	if endPoint.value, err = ValueFromMarshalUtil(marshalUtil); err != nil {
		err = xerrors.Errorf("failed to parse Value from MarshalUtil: %w", err)
		return
	}
	if endPoint.boundType, err = BoundTypeFromMarshalUtil(marshalUtil); err != nil {
		err = xerrors.Errorf("failed to parse BoundType from MarshalUtil: %w", err)
		return
	}
	return
}
func (e *EndPoint) Value() Value {
	return e.value
}
func (e *EndPoint) BoundType() BoundType {
	return e.boundType
}
func (e *EndPoint) Bytes() []byte {
	return marshalutil.New().
		Write(e.value).
		Write(e.boundType).
		Bytes()
}