package wire

import (
	
	
)

// A MaxDataFrame carries flow control information for the connection
type MaxDataFrame struct {
	MaximumData protocol.ByteCount
}

// parseMaxDataFrame parses a MAX_DATA frame
func parseMaxDataFrame( []byte,  protocol.Version) (*MaxDataFrame, int, error) {
	 := &MaxDataFrame{}
	, ,  := quicvarint.Parse()
	if  != nil {
		return nil, 0, replaceUnexpectedEOF()
	}
	.MaximumData = protocol.ByteCount()
	return , , nil
}

func ( *MaxDataFrame) ( []byte,  protocol.Version) ([]byte, error) {
	 = append(, byte(FrameTypeMaxData))
	 = quicvarint.Append(, uint64(.MaximumData))
	return , nil
}

// Length of a written frame
func ( *MaxDataFrame) ( protocol.Version) protocol.ByteCount {
	return 1 + protocol.ByteCount(quicvarint.Len(uint64(.MaximumData)))
}