forked from BigfootDev/flatbuffers
Improves unpack performance for vectors by allowing the compiler to vectorize flatbuffers::Vector to std::vec::Vec conversions, using the unstable trusted_len feature. Internally, enables an optimization in src/alloc/vec/spec_extend.rs: Previously, unpacking a flatbuffers::Vector called SpecExtend::extend_desugared fallback, which inhibits vectorization (due to a branch before every element move). Declaring TrustedLen allows SpecExtend::extend_trusted, which LLVM can often vectorize into a memcpy. For [ubyte] vectors in particular, this turns a rather expensive loop of 'mov BYTE PTR [rax+r13*1], bpl' into a `call memcpy`.