pub enum WebTransportEvent {
Show 14 variants
BidiStreamOpen {
stream_id: u64,
session_id: u64,
},
BidiStreamData {
stream_id: u64,
data: Vec<u8>,
},
BidiStreamEnd {
stream_id: u64,
},
UniStreamOpen {
stream_id: u64,
session_id: u64,
},
UniStreamData {
stream_id: u64,
data: Vec<u8>,
},
UniStreamEnd {
stream_id: u64,
},
SessionClosed {
session_id: u64,
reset_streams: Vec<WtStreamReset>,
error_code: u64,
close_error_code: u32,
close_message: String,
},
SessionEstablished {
session_id: u64,
flow_control_enabled: bool,
},
SessionDraining {
session_id: u64,
},
Capsule {
session_id: u64,
capsule: Capsule,
},
Datagram {
session_id: u64,
payload: Vec<u8>,
},
StreamReset {
session_id: u64,
stream_id: u64,
error_code: u64,
final_size: u64,
},
StreamStopSending {
session_id: u64,
stream_id: u64,
error_code: u64,
},
BufferedStreamRejected {
stream_id: u64,
error_code: u64,
},
}Expand description
WebTransport イベント
WebTransport 関連のイベントを集約した enum。
Event::WebTransport(WebTransportEvent) として使用する。
Variants§
BidiStreamOpen
双方向ストリーム開始 (draft-ietf-webtrans-http3-15 Section 4.3)
BidiStreamData
双方向ストリームデータ受信
BidiStreamEnd
双方向ストリーム終了 (FIN 受信)
UniStreamOpen
単方向ストリーム開始 (draft-ietf-webtrans-http3-15 Section 4.2)
UniStreamData
単方向ストリームデータ受信
UniStreamEnd
単方向ストリーム終了 (FIN 受信)
SessionClosed
セッション終了 (draft-ietf-webtrans-http3-15 Section 6)
セッションが終了した。reset_streams に含まれる全ストリームに対して
error_code を使用して RESET_STREAM_AT (reliable_size を伴う) と
STOP_SENDING を送信すること。reset_stream_at transport parameter が
ネゴシエートされていない経路では通常の RESET_STREAM にフォールバックする。
Fields
reset_streams: Vec<WtStreamReset>リセットすべきストリーム情報の一覧 (stream_id と reliable_size)
SessionEstablished
セッション確立 (draft-ietf-webtrans-http3-15 Section 3)
CONNECT ストリームに 200 OK が返された。 バッファリングされていたストリーム/データグラムがあれば配送される。
Fields
SessionDraining
セッション draining (draft-ietf-webtrans-http3-15 Section 4.7)
WT_DRAIN_SESSION カプセルを受信した。 Section 4.7 では MAY continue だが、本実装はアプリ層の早期終了を促すため 新規ストリームやデータグラムの送信を拒否する。 セッションは即座に終了しないが、グレースフルシャットダウンを開始する。
Capsule
フロー制御カプセル受信 (draft-ietf-webtrans-http3-15 Section 5.6)
CONNECT ストリーム上でフロー制御カプセルを受信した。
上位層は webtransport::Session::process_capsule に渡すこと。
Datagram
データグラム受信 (draft-ietf-webtrans-http3-15 Section 4.5)
QUIC DATAGRAM フレームから WebTransport データグラムを受信した。
StreamReset
データストリームのリセット受信 (draft-ietf-webtrans-http3-15 Section 4.4)
WebTransport セッションに属するデータストリームに対して RESET_STREAM を 受信した。アプリケーション層はセッション ID と application error code を 元にアプリへ通知すること。
Fields
StreamStopSending
データストリームへの STOP_SENDING 受信 (draft-ietf-webtrans-http3-15 Section 4.4)
Fields
BufferedStreamRejected
バッファリング拒否 (draft-ietf-webtrans-http3-15 Section 4.6)
バッファリング上限を超えたため、error_code を使用して
RESET_STREAM / STOP_SENDING を送信すること。
Implementations§
Trait Implementations§
Source§impl Clone for WebTransportEvent
impl Clone for WebTransportEvent
Source§fn clone(&self) -> WebTransportEvent
fn clone(&self) -> WebTransportEvent
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for WebTransportEvent
impl Debug for WebTransportEvent
impl Eq for WebTransportEvent
Source§impl PartialEq for WebTransportEvent
impl PartialEq for WebTransportEvent
Source§fn eq(&self, other: &WebTransportEvent) -> bool
fn eq(&self, other: &WebTransportEvent) -> bool
self and other values to be equal, and is used by ==.