mysql_connector/utils/
mod.rs

1mod buf_mut_ext;
2mod scramble;
3
4#[cfg(feature = "caching-sha2-password")]
5#[cfg_attr(doc, doc(cfg(feature = "caching-sha2-password")))]
6pub(crate) mod crypt;
7
8pub(crate) use {buf_mut_ext::BufMutExt, scramble::*};
9
10#[cfg(feature = "caching-sha2-password")]
11#[cfg_attr(doc, doc(cfg(feature = "caching-sha2-password")))]
12pub(crate) use crypt::{OaepPadding, PublicKey};
13
14pub fn lenenc_int_len(x: u64) -> u64 {
15    if x < 251 {
16        1
17    } else if x < 65_536 {
18        3
19    } else if x < 16_777_216 {
20        4
21    } else {
22        9
23    }
24}
25
26pub fn lenenc_slice_len(s: &[u8]) -> u64 {
27    let len = s.len() as u64;
28    lenenc_int_len(len) + len
29}
30
31pub fn read_u32(value: &[u8]) -> u32 {
32    let mut bytes = [0u8; 4];
33    for (i, b) in value.iter().enumerate() {
34        bytes[i] = *b;
35    }
36    u32::from_le_bytes(bytes)
37}