@@ -110,6 +110,16 @@ macro_rules! ascii_case_insensitive_phf_map {
110110 }
111111}
112112
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+
113123/// Implementation detail of match_ignore_ascii_case! and ascii_case_insensitive_phf_map! macros.
114124///
115125/// **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 {
121131#[ doc( hidden) ]
122132macro_rules! _cssparser_internal_to_lowercase {
123133 ( $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-
135134 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 >( ) ;
137136 let input: & str = $input;
138137 let $output = $crate:: _cssparser_internal_to_lowercase( & mut buffer, input) ;
139138 } ;
0 commit comments