1*54e6baf1SDanilo Krummrich // SPDX-License-Identifier: GPL-2.0 2*54e6baf1SDanilo Krummrich 3*54e6baf1SDanilo Krummrich pub(crate) const fn to_lowercase_bytes<const N: usize>(s: &str) -> [u8; N] { 4*54e6baf1SDanilo Krummrich let src = s.as_bytes(); 5*54e6baf1SDanilo Krummrich let mut dst = [0; N]; 6*54e6baf1SDanilo Krummrich let mut i = 0; 7*54e6baf1SDanilo Krummrich 8*54e6baf1SDanilo Krummrich while i < src.len() && i < N { 9*54e6baf1SDanilo Krummrich dst[i] = (src[i] as char).to_ascii_lowercase() as u8; 10*54e6baf1SDanilo Krummrich i += 1; 11*54e6baf1SDanilo Krummrich } 12*54e6baf1SDanilo Krummrich 13*54e6baf1SDanilo Krummrich dst 14*54e6baf1SDanilo Krummrich } 15*54e6baf1SDanilo Krummrich 16*54e6baf1SDanilo Krummrich pub(crate) const fn const_bytes_to_str(bytes: &[u8]) -> &str { 17*54e6baf1SDanilo Krummrich match core::str::from_utf8(bytes) { 18*54e6baf1SDanilo Krummrich Ok(string) => string, 19*54e6baf1SDanilo Krummrich Err(_) => kernel::build_error!("Bytes are not valid UTF-8."), 20*54e6baf1SDanilo Krummrich } 21*54e6baf1SDanilo Krummrich } 22