Support simd_json (#105)

This PR adds support for the simd-json library whenever decoding or encoding JSON responses. This may be enabled independently of serenity and twilight support for SIMD acceleration.

Co-authored-by: Kyle Simpson <kyleandrew.simpson@gmail.com>
This commit is contained in:
Victoria Casasampere Fernandez
2022-07-25 15:18:45 +02:00
committed by Kyle Simpson
parent 8cc7a22b0b
commit cb0a74f511
13 changed files with 60 additions and 17 deletions

View File

@@ -110,9 +110,11 @@ impl FormatReader for DcaReader {
return symph_err::decode_error("missing DCA1 metadata block");
}
let raw_json = source.read_boxed_slice_exact(size as usize)?;
let mut raw_json = source.read_boxed_slice_exact(size as usize)?;
let metadata: DcaMetadata = serde_json::from_slice::<DcaMetadata>(&raw_json)
// NOTE: must be mut for simd-json.
#[allow(clippy::unnecessary_mut_passed)]
let metadata: DcaMetadata = crate::json::from_slice::<DcaMetadata>(&mut raw_json)
.map_err(|_| SymphError::DecodeError("malformed DCA1 metadata block"))?;
let mut revision = MetadataBuilder::new();