package wire

import (
	
	
)

// A MaxStreamDataFrame is a MAX_STREAM_DATA frame
type MaxStreamDataFrame struct {
	StreamID          protocol.StreamID
	MaximumStreamData protocol.ByteCount
}

func parseMaxStreamDataFrame( []byte,  protocol.Version) (*MaxStreamDataFrame, int, error) {
	 := len()
	, ,  := quicvarint.Parse()
	if  != nil {
		return nil, 0, replaceUnexpectedEOF()
	}
	 = [:]
	, ,  := quicvarint.Parse()
	if  != nil {
		return nil, 0, replaceUnexpectedEOF()
	}
	 = [:]

	return &MaxStreamDataFrame{
		StreamID:          protocol.StreamID(),
		MaximumStreamData: protocol.ByteCount(),
	},  - len(), nil
}

func ( *MaxStreamDataFrame) ( []byte,  protocol.Version) ([]byte, error) {
	 = append(, byte(FrameTypeMaxStreamData))
	 = quicvarint.Append(, uint64(.StreamID))
	 = quicvarint.Append(, uint64(.MaximumStreamData))
	return , nil
}

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