1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
use std::{ cmp::min, ptr::{null, null_mut}, }; /// Clamps a usize between `0` and `SmallInt::MAX`. pub fn clamp_small_int(n: usize) -> i16 { min(n, i16::MAX as usize) as i16 } /// Returns a pointer suitable to be passed as an output buffer to ODBC functions. Most notably it /// will return NULL for empty buffers. pub fn mut_buf_ptr<T>(buffer: &mut [T]) -> *mut T { if buffer.is_empty() { null_mut() } else { buffer.as_mut_ptr() } } /// Returns a pointer suitable to be passed as an output buffer to ODBC functions. Most notably it /// will return NULL for empty buffers. pub fn buf_ptr<T>(buffer: &[T]) -> *const T { if buffer.is_empty() { null() } else { buffer.as_ptr() } }