use byteorder::LittleEndian;
use crate::io::BufMut;
use crate::mysql::io::BufMutExt;
use crate::mysql::protocol::{AuthPlugin, Capabilities, Encode};
#[derive(Debug)]
pub struct SslRequest {
pub max_packet_size: u32,
pub client_collation: u8,
}
impl Encode for SslRequest {
fn encode(&self, buf: &mut Vec<u8>, capabilities: Capabilities) {
assert!(
capabilities.contains(Capabilities::SSL),
"SSL bit must be set for Capabilities"
);
buf.put_u32::<LittleEndian>(capabilities.bits() as u32);
buf.put_u32::<LittleEndian>(self.max_packet_size);
buf.put_u8(self.client_collation);
buf.advance(23);
}
}