sqlx_mysql/protocol/connect/
ssl_request.rs1use crate::io::ProtocolEncode;
2use crate::protocol::Capabilities;
3
4#[derive(Debug)]
8pub struct SslRequest {
9 pub max_packet_size: u32,
10 pub collation: u8,
11}
12
13impl ProtocolEncode<'_, Capabilities> for SslRequest {
14 fn encode_with(&self, buf: &mut Vec<u8>, context: Capabilities) -> Result<(), crate::Error> {
15 #[allow(clippy::cast_possible_truncation)]
17 buf.extend(&(context.bits() as u32).to_le_bytes());
18 buf.extend(&self.max_packet_size.to_le_bytes());
19 buf.push(self.collation);
20
21 buf.extend(&[0_u8; 19]);
23
24 if context.contains(Capabilities::MYSQL) {
25 buf.extend(&[0_u8; 4]);
27 } else {
28 buf.extend(&((context.bits() >> 32) as u32).to_le_bytes());
30 }
31
32 Ok(())
33 }
34}