File tree Expand file tree Collapse file tree 3 files changed +8
-0
lines changed Expand file tree Collapse file tree 3 files changed +8
-0
lines changed Original file line number Diff line number Diff line change @@ -15,6 +15,7 @@ edition = "2021"
15
15
16
16
[features ]
17
17
default = []
18
+ simdutf8 = [" dep:simdutf8" ]
18
19
mmap = [" memmap2" ]
19
20
unsafe-str-decode = []
20
21
@@ -28,6 +29,7 @@ log = "0.4"
28
29
serde = { version = " 1.0" , features = [" derive" ] }
29
30
memchr = " 2.4"
30
31
memmap2 = { version = " 0.9.0" , optional = true }
32
+ simdutf8 = { version = " 0.1.5" , optional = true }
31
33
32
34
[dev-dependencies ]
33
35
env_logger = " 0.11"
Original file line number Diff line number Diff line change @@ -328,6 +328,9 @@ impl<'de> Decoder<'de> {
328
328
329
329
#[ cfg( not( feature = "unsafe-str-decode" ) ) ]
330
330
fn decode_string ( & mut self , size : usize ) -> DecodeResult < & ' de str > {
331
+ #[ cfg( feature = "simdutf8" ) ]
332
+ use simdutf8:: basic:: from_utf8;
333
+ #[ cfg( not( feature = "simdutf8" ) ) ]
331
334
use std:: str:: from_utf8;
332
335
333
336
let new_offset: usize = self . current_ptr + size;
Original file line number Diff line number Diff line change @@ -18,6 +18,9 @@ use memmap2::MmapOptions;
18
18
#[ cfg( feature = "mmap" ) ]
19
19
use std:: fs:: File ;
20
20
21
+ #[ cfg( all( feature = "simdutf8" , feature = "unsafe-str-decode" ) ) ]
22
+ compile_error ! ( "features `simdutf8` and `unsafe-str-decode` are mutually exclusive" ) ;
23
+
21
24
#[ derive( Debug , PartialEq , Eq ) ]
22
25
pub enum MaxMindDBError {
23
26
AddressNotFoundError ( String ) ,
You can’t perform that action at this time.
0 commit comments