pub struct FramedSendStream {
inner: SendStream,
draft: DraftVersion,
subgroup_io: Option<SubgroupObjectReader>,
}Expand description
A framed writer for a send stream. Handles MoQT length-prefixed framing.
Fields§
§inner: SendStream§draft: DraftVersion§subgroup_io: Option<SubgroupObjectReader>Stateful subgroup object encoder. Initialized by
FramedSendStream::write_subgroup_header and used by
FramedSendStream::write_subgroup_object to track the delta-encoded
object ID state.
Implementations§
Source§impl FramedSendStream
impl FramedSendStream
Sourcepub fn new(inner: SendStream, draft: DraftVersion) -> Self
pub fn new(inner: SendStream, draft: DraftVersion) -> Self
Create a new framed send stream for the given draft version.
Sourcepub async fn write_control(
&mut self,
msg: &AnyControlMessage,
) -> Result<Vec<u8>, ConnectionError>
pub async fn write_control( &mut self, msg: &AnyControlMessage, ) -> Result<Vec<u8>, ConnectionError>
Write a control message to the stream with type+length framing. Returns the raw bytes that were written (for event capture).
Sourcepub async fn write_subgroup_header(
&mut self,
header: &AnySubgroupHeader,
) -> Result<(), ConnectionError>
pub async fn write_subgroup_header( &mut self, header: &AnySubgroupHeader, ) -> Result<(), ConnectionError>
Write a subgroup stream header. Also initializes the internal
delta-encoding state used by FramedSendStream::write_subgroup_object.
Sourcepub async fn write_fetch_header(
&mut self,
header: &AnyFetchHeader,
) -> Result<(), ConnectionError>
pub async fn write_fetch_header( &mut self, header: &AnyFetchHeader, ) -> Result<(), ConnectionError>
Write a fetch response header.
Sourcepub async fn write_subgroup_object(
&mut self,
object: &SubgroupObject,
) -> Result<(), ConnectionError>
pub async fn write_subgroup_object( &mut self, object: &SubgroupObject, ) -> Result<(), ConnectionError>
Append a draft-14 subgroup object to the stream. Uses the stateful
reader installed by FramedSendStream::write_subgroup_header to
produce the correct delta-encoded object ID. Returns an error if
called before a subgroup header was written.
Sourcepub async fn write_fetch_object(
&mut self,
object: &FetchObject,
) -> Result<(), ConnectionError>
pub async fn write_fetch_object( &mut self, object: &FetchObject, ) -> Result<(), ConnectionError>
Append a draft-14 fetch object to the stream. Fetch objects are
self-contained (each carries its own group/subgroup/object IDs and
priority), so no prior write_fetch_header bookkeeping is required.
Sourcepub async fn finish(&mut self) -> Result<(), ConnectionError>
pub async fn finish(&mut self) -> Result<(), ConnectionError>
Finish the stream (send FIN).