rust_utils/
string.rs

1use crate::sealed::Sealed;
2
3use alloc::string::String;
4use alloc::vec::Vec;
5
6pub trait StringExt {
7    fn from_utf8_simd(bytes: Vec<u8>) -> Option<String>;
8}
9
10impl Sealed for String {}
11
12impl StringExt for String {
13    fn from_utf8_simd(bytes: Vec<u8>) -> Option<String> {
14        let is_utf8 = simdutf8::basic::from_utf8(&bytes).is_ok();
15        is_utf8.then(|| unsafe { String::from_utf8_unchecked(bytes) })
16    }
17}