-
Notifications
You must be signed in to change notification settings - Fork 91
Open
Description
Let me preface this as this project is awesome and I quite enjoyed reading through code. I'm reading cause I'm intrested in SIMD-ifying my YAML parsing crate.
But I got few questions about the implementation details, or link me to some alternate discussion board.
Here are the questions:
-
Why are structural indexes:
Lines 779 to 781 in b249c70
pub(crate) unsafe fn find_structural_bits( input: &[u8], structural_indexes: &mut Vec<u32>,
Vec<u32>and notVec<u64>?- This means largest JSON parsed (assuming UTF-8 encoding) is 4GB, right?
- Is it for performance reasons or something else I might have missed?
-
Does using macros like this one:
Lines 128 to 144 in b249c70
macro_rules! s2try { ($e:expr) => { match $e { ::std::result::Result::Ok(val) => val, ::std::result::Result::Err(err) => { // We need to ensure that rust doesn't // try to free strings that we never // allocated unsafe { res.set_len(r_i); }; return ::std::result::Result::Err(err); } } }; } Offer benefits over using an
#[inline]on function? -
In Readme.md you mentioned something about a
We work around some performance bottlenecks imposed by safe rustDoes this means the indexing penalty you pay for safe array access?
Metadata
Metadata
Assignees
Labels
No labels