sqlx_mysql/protocol/connect/
ssl_request.rsuse crate::io::ProtocolEncode;
use crate::protocol::Capabilities;
#[derive(Debug)]
pub struct SslRequest {
pub max_packet_size: u32,
pub collation: u8,
}
impl ProtocolEncode<'_, Capabilities> for SslRequest {
fn encode_with(&self, buf: &mut Vec<u8>, context: Capabilities) -> Result<(), crate::Error> {
#[allow(clippy::cast_possible_truncation)]
buf.extend(&(context.bits() as u32).to_le_bytes());
buf.extend(&self.max_packet_size.to_le_bytes());
buf.push(self.collation);
buf.extend(&[0_u8; 19]);
if context.contains(Capabilities::MYSQL) {
buf.extend(&[0_u8; 4]);
} else {
buf.extend(&((context.bits() >> 32) as u32).to_le_bytes());
}
Ok(())
}
}