use serde::{Deserialize, Serialize};
pub use tokio_util::codec::LengthDelimitedCodec;
use crate::protocol::{ClientConnect, ClientHello, ServerConnectResponse};
pub const MAX_FRAME_LENGTH: usize = 8 * 1024 * 1024;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum ClientMessage {
Hello(ClientHello),
Connect(ClientConnect),
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum ServerMessage {
ConnectResponse(ServerConnectResponse),
}
pub fn length_codec() -> LengthDelimitedCodec {
LengthDelimitedCodec::builder()
.length_field_offset(0)
.length_field_length(4)
.length_adjustment(0)
.num_skip(4)
.max_frame_length(MAX_FRAME_LENGTH)
.new_codec()
}
pub const LENGTH_PREFIX_SIZE: usize = 4;