mysql_connector/utils/
mod.rs1mod 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}