package wire

import (
	
	
)

// A StreamDataBlockedFrame is a STREAM_DATA_BLOCKED frame
type StreamDataBlockedFrame struct {
	StreamID          protocol.StreamID
	MaximumStreamData protocol.ByteCount
}

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

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

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

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