LCOV - code coverage report
Current view: top level - libs/proxy/postgres-types2/src - private.rs (source / functions) Coverage Total Hit
Test: 6df3fc19ec669bcfbbf9aba41d1338898d24eaa0.info Lines: 0.0 % 27 0
Test Date: 2025-03-12 18:28:53 Functions: 0.0 % 2 0

            Line data    Source code
       1              : use std::error::Error;
       2              : 
       3              : pub use bytes::BytesMut;
       4              : 
       5              : use crate::{FromSql, Type};
       6              : 
       7            0 : pub fn read_be_i32(buf: &mut &[u8]) -> Result<i32, Box<dyn Error + Sync + Send>> {
       8            0 :     if buf.len() < 4 {
       9            0 :         return Err("invalid buffer size".into());
      10            0 :     }
      11            0 :     let mut bytes = [0; 4];
      12            0 :     bytes.copy_from_slice(&buf[..4]);
      13            0 :     *buf = &buf[4..];
      14            0 :     Ok(i32::from_be_bytes(bytes))
      15            0 : }
      16              : 
      17            0 : pub fn read_value<'a, T>(
      18            0 :     type_: &Type,
      19            0 :     buf: &mut &'a [u8],
      20            0 : ) -> Result<T, Box<dyn Error + Sync + Send>>
      21            0 : where
      22            0 :     T: FromSql<'a>,
      23            0 : {
      24            0 :     let len = read_be_i32(buf)?;
      25            0 :     let value = if len < 0 {
      26            0 :         None
      27              :     } else {
      28            0 :         if len as usize > buf.len() {
      29            0 :             return Err("invalid buffer size".into());
      30            0 :         }
      31            0 :         let (head, tail) = buf.split_at(len as usize);
      32            0 :         *buf = tail;
      33            0 :         Some(head)
      34              :     };
      35            0 :     T::from_sql_nullable(type_, value)
      36            0 : }
        

Generated by: LCOV version 2.1-beta