moqtap_client/draft16/session/setup.rs
1use moqtap_codec::draft16::message::{ClientSetup, ServerSetup};
2
3/// Errors from setup message validation.
4#[derive(Debug, thiserror::Error, PartialEq, Eq)]
5pub enum SetupError {
6 /// A required setup parameter is missing.
7 #[error("missing required parameter: {0}")]
8 MissingParameter(
9 /// Name of the missing parameter.
10 &'static str,
11 ),
12 /// Client included a parameter reserved for SERVER_SETUP.
13 #[error("client sent SERVER_SETUP-only parameter")]
14 WrongParameterRole,
15}
16
17/// Validate a CLIENT_SETUP message.
18///
19/// Draft-16 uses ALPN for version negotiation, so CLIENT_SETUP has no
20/// versions field. Validation just checks parameters.
21pub fn validate_client_setup(_msg: &ClientSetup) -> Result<(), SetupError> {
22 // No version list to validate in draft-16.
23 // Could add parameter validation here if needed.
24 Ok(())
25}
26
27/// Validate a SERVER_SETUP message.
28///
29/// Draft-16 uses ALPN for version negotiation, so SERVER_SETUP has no
30/// selected_version field. Validation just checks parameters.
31pub fn validate_server_setup(_msg: &ServerSetup) -> Result<(), SetupError> {
32 Ok(())
33}