shadow_shmem/
util.rs
1pub const PATH_MAX_NBYTES: usize = 255;
3
4pub(crate) type PathBuf = [u8; PATH_MAX_NBYTES + 1];
6
7pub(crate) const NULL_PATH_BUF: PathBuf = [0; PATH_MAX_NBYTES + 1];
8
9pub(crate) fn trim_null_bytes<const N: usize>(s: &[u8; N]) -> Option<&[u8]> {
18 if let Some(i) = s.iter().position(|x| *x == 0) {
19 Some(&s[0..(i)])
20 } else {
21 None
22 }
23}
24
25pub(crate) fn buf_from_utf8_str<const N: usize>(s: &str) -> Option<[u8; N]> {
26 let mut retval = [0; N];
27
28 if s.len() >= N {
29 None
30 } else {
31 retval
32 .iter_mut()
33 .zip(s.as_bytes().iter())
34 .for_each(|(x, y)| *x = *y);
35 Some(retval)
36 }
37}