@@ -110,6 +110,16 @@ macro_rules! ascii_case_insensitive_phf_map {
110
110
}
111
111
}
112
112
113
+ /// Create a new array of MaybeUninit<T> items, in an uninitialized state.
114
+ #[ inline( always) ]
115
+ pub fn _cssparser_internal_create_uninit_array < const N : usize > ( ) -> [ MaybeUninit < u8 > ; N ] {
116
+ unsafe {
117
+ // SAFETY: An uninitialized `[MaybeUninit<_>; LEN]` is valid.
118
+ // See: https://doc.rust-lang.org/stable/core/mem/union.MaybeUninit.html#method.uninit_array
119
+ MaybeUninit :: < [ MaybeUninit < u8 > ; N ] > :: uninit ( ) . assume_init ( )
120
+ }
121
+ }
122
+
113
123
/// Implementation detail of match_ignore_ascii_case! and ascii_case_insensitive_phf_map! macros.
114
124
///
115
125
/// **This macro is not part of the public API. It can change or be removed between any versions.**
@@ -121,19 +131,8 @@ macro_rules! ascii_case_insensitive_phf_map {
121
131
#[ doc( hidden) ]
122
132
macro_rules! _cssparser_internal_to_lowercase {
123
133
( $input: expr, $BUFFER_SIZE: expr => $output: ident) => {
124
- /// Create a new array of MaybeUninit<T> items, in an uninitialized state.
125
- #[ inline( always) ]
126
- fn create_uninit_array<const N : usize >( ) -> [ :: std:: mem:: MaybeUninit <u8 >; N ] {
127
- unsafe {
128
- // SAFETY: An uninitialized `[MaybeUninit<_>; LEN]` is valid.
129
- // See: https://doc.rust-lang.org/stable/core/mem/union.MaybeUninit.html#method.uninit_array
130
- :: std:: mem:: MaybeUninit :: <[ :: std:: mem:: MaybeUninit <u8 >; N ] >:: uninit( )
131
- . assume_init( )
132
- }
133
- }
134
-
135
134
const BUFFER_SIZE : usize = $BUFFER_SIZE as usize ;
136
- let mut buffer = create_uninit_array :: <BUFFER_SIZE >( ) ;
135
+ let mut buffer = $crate :: macros :: _cssparser_internal_create_uninit_array :: <BUFFER_SIZE >( ) ;
137
136
let input: & str = $input;
138
137
let $output = $crate:: _cssparser_internal_to_lowercase( & mut buffer, input) ;
139
138
} ;
0 commit comments