use crate::postgres::protocol::new_writer::NewWriter;
use crate::postgres::types::int_types::int32;
use crate::shared::Data;
pub struct PasswordMessage {
pub password: Data,
}
impl Default for PasswordMessage {
fn default() -> Self {
Self {
password: Data::Empty,
}
}
}
impl PasswordMessage {
pub fn write_internal<Context: super::new_writer::WriterContext>(
&self,
writer: &mut NewWriter<Context>,
) -> Result<(), bun_core::Error> {
let password = self.password.slice();
let count: usize = core::mem::size_of::<u32>() + password.len() + 1;
let mut header = [0u8; 5];
header[0] = b'p';
header[1..5].copy_from_slice(&int32(count));
writer.write(&header)?;
writer.string(password)?;
Ok(())
}
pub fn write<Context: super::new_writer::WriterContext>(
&self,
writer: &mut NewWriter<Context>,
) -> Result<(), bun_core::Error> {
self.write_internal(writer)
}
}