wtx 0.43.1

A collection of different transport implementations and related tools focused primarily on web technologies.
Documentation
use crate::misc::{Lease, SuffixWriterFbvm};

/// Struct used for encoding elements in PostgreSQL.
#[derive(Debug)]
pub struct EncodeWrapper<'inner, 'outer> {
  buffer: &'outer mut SuffixWriterFbvm<'inner>,
}

impl<'inner, 'outer> EncodeWrapper<'inner, 'outer> {
  pub(crate) const fn new(buffer: &'outer mut SuffixWriterFbvm<'inner>) -> Self {
    Self { buffer }
  }

  /// Buffer used to encode messages that will be sent to PostgreSQL.
  pub const fn buffer(&mut self) -> &mut SuffixWriterFbvm<'inner> {
    self.buffer
  }
}

impl Lease<[u8]> for EncodeWrapper<'_, '_> {
  #[inline]
  fn lease(&self) -> &[u8] {
    self.buffer.curr_bytes()
  }
}