#[cfg(feature = "alloc")]
use alloc::vec::Vec;
pub(crate) const fn swapcase_byte(byte: u8) -> u8 {
if byte.is_ascii_lowercase() {
byte.to_ascii_uppercase()
} else {
byte.to_ascii_lowercase()
}
}
pub fn make_ascii_swapcase<T: AsMut<[u8]>>(slice: &mut T) {
for byte in slice.as_mut() {
*byte = swapcase_byte(*byte);
}
}
#[cfg(feature = "alloc")]
#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
pub fn to_ascii_swapcase<T: AsRef<[u8]>>(slice: T) -> Vec<u8> {
slice.as_ref().iter().copied().map(swapcase_byte).collect()
}