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}