sqlx_mysql/protocol/response/
eof.rs1use bytes::{Buf, Bytes};
2
3use crate::error::Error;
4use crate::io::ProtocolDecode;
5use crate::protocol::response::Status;
6use crate::protocol::Capabilities;
7
8#[derive(Debug)]
15pub struct EofPacket {
16 #[allow(dead_code)]
17 pub warnings: u16,
18 pub status: Status,
19}
20
21impl ProtocolDecode<'_, Capabilities> for EofPacket {
22 fn decode_with(mut buf: Bytes, _: Capabilities) -> Result<Self, Error> {
23 let header = buf.get_u8();
24 if header != 0xfe {
25 return Err(err_protocol!(
26 "expected 0xfe (EOF_Packet) but found 0x{:x}",
27 header
28 ));
29 }
30
31 let warnings = buf.get_u16_le();
32 let status = Status::from_bits_truncate(buf.get_u16_le());
33
34 Ok(Self { status, warnings })
35 }
36}