Coverage Report

Created: 2025-08-26 07:04

/rust/registry/src/index.crates.io-6f17d22bba15001f/simdutf8-0.1.5/src/implementation/mod.rs
Line
Count
Source (jump to first uncovered line)
1
//! Contains UTF-8 validation implementations.
2
3
type Utf8ErrorCompat = crate::compat::Utf8Error;
4
type Utf8ErrorBasic = crate::basic::Utf8Error;
5
6
#[allow(unused_macros)]
7
#[macro_use]
8
mod algorithm;
9
10
pub(crate) mod helpers;
11
12
// UTF-8 validation function types
13
14
#[allow(dead_code)]
15
type ValidateUtf8Fn = unsafe fn(input: &[u8]) -> Result<(), Utf8ErrorBasic>;
16
17
#[allow(dead_code)]
18
type ValidateUtf8CompatFn = unsafe fn(input: &[u8]) -> Result<(), Utf8ErrorCompat>;
19
20
// x86 implementation
21
22
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
23
pub(crate) mod x86;
24
25
/// Fn needed instead of re-import, otherwise not inlined in non-std case
26
#[allow(clippy::inline_always)]
27
#[inline(always)]
28
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
29
13.9M
pub(super) unsafe fn validate_utf8_basic(input: &[u8]) -> Result<(), Utf8ErrorBasic> {
30
13.9M
    x86::validate_utf8_basic(input)
31
13.9M
}
32
33
/// Fn needed instead of re-import, otherwise not inlined in non-std case
34
#[allow(clippy::inline_always)]
35
#[inline(always)]
36
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
37
0
pub(super) unsafe fn validate_utf8_compat(input: &[u8]) -> Result<(), Utf8ErrorCompat> {
38
0
    x86::validate_utf8_compat(input)
39
0
}
40
41
// aarch64 implementation
42
43
#[cfg(target_arch = "aarch64")]
44
pub(crate) mod aarch64;
45
46
#[cfg(target_arch = "aarch64")]
47
pub(super) use aarch64::validate_utf8_basic;
48
49
#[cfg(target_arch = "aarch64")]
50
pub(super) use aarch64::validate_utf8_compat;
51
52
// wasm32 implementation
53
54
#[cfg(target_arch = "wasm32")]
55
pub(crate) mod wasm32;
56
57
#[cfg(target_arch = "wasm32")]
58
pub(super) use wasm32::validate_utf8_basic;
59
60
#[cfg(target_arch = "wasm32")]
61
pub(super) use wasm32::validate_utf8_compat;
62
63
// fallback for unsupported architectures
64
65
#[cfg(not(any(
66
    target_arch = "x86",
67
    target_arch = "x86_64",
68
    target_arch = "aarch64",
69
    target_arch = "wasm32"
70
)))]
71
pub(super) use validate_utf8_basic_fallback as validate_utf8_basic;
72
73
#[cfg(not(any(
74
    target_arch = "x86",
75
    target_arch = "x86_64",
76
    target_arch = "aarch64",
77
    target_arch = "wasm32"
78
)))]
79
pub(super) use validate_utf8_compat_fallback as validate_utf8_compat;
80
81
// fallback method implementations
82
83
#[inline]
84
#[allow(dead_code)]
85
13.6M
pub(crate) fn validate_utf8_basic_fallback(input: &[u8]) -> Result<(), Utf8ErrorBasic> {
86
13.6M
    match core::str::from_utf8(input) {
87
13.5M
        Ok(_) => Ok(()),
88
85.3k
        Err(_) => Err(Utf8ErrorBasic {}),
89
    }
90
13.6M
}
simdutf8::implementation::validate_utf8_basic_fallback
Line
Count
Source
85
13.6M
pub(crate) fn validate_utf8_basic_fallback(input: &[u8]) -> Result<(), Utf8ErrorBasic> {
86
13.6M
    match core::str::from_utf8(input) {
87
13.5M
        Ok(_) => Ok(()),
88
85.3k
        Err(_) => Err(Utf8ErrorBasic {}),
89
    }
90
13.6M
}
Unexecuted instantiation: simdutf8::implementation::validate_utf8_basic_fallback
91
92
#[inline]
93
#[allow(dead_code)]
94
0
pub(crate) fn validate_utf8_compat_fallback(input: &[u8]) -> Result<(), Utf8ErrorCompat> {
95
0
    helpers::validate_utf8_at_offset(input, 0)
96
0
}