Skip to content

Commit 253d080

Browse files
perf: Use bincode to encode items rather than JSON
1 parent 7e4e89c commit 253d080

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

compiler/pavexc/src/rustdoc/compute/cache.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -798,7 +798,6 @@ pub(in crate::rustdoc) struct SecondaryIndexes<'a> {
798798
impl<'a> CacheEntry<'a> {
799799
pub fn new(krate: &'a crate::rustdoc::Crate) -> Result<CacheEntry<'a>, anyhow::Error> {
800800
let mut cached = Self::raw(krate)?;
801-
802801
let import_index = bincode::serde::encode_to_vec(&krate.import_index, BINCODE_CONFIG)?;
803802
let annotated_items =
804803
bincode::serde::encode_to_vec(&krate.annotated_items, BINCODE_CONFIG)?;
@@ -827,7 +826,7 @@ impl<'a> CacheEntry<'a> {
827826
let mut item_id2delimiters = HashMap::new();
828827
for (item_id, item) in &index.index {
829828
let start = items.len();
830-
serde_json::to_writer(&mut items, item)?;
829+
bincode::serde::encode_into_std_write(item, &mut items, bincode::config::standard())?;
831830
let end = items.len();
832831
item_id2delimiters.insert(item_id.0, (start, end));
833832
}

compiler/pavexc/src/rustdoc/queries.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -935,9 +935,10 @@ impl CrateItemIndex {
935935
Self::Lazy(index) => {
936936
let (start, end) = index.item_id2delimiters.get(id)?;
937937
let bytes = index.items[*start..*end].to_vec();
938-
let item = serde_json::from_slice(&bytes).expect(
939-
"Failed to deserialize an item from a lazy `rustdoc` index. This is a bug.",
940-
);
938+
let (item, _) =
939+
bincode::serde::decode_from_slice(&bytes, bincode::config::standard()).expect(
940+
"Failed to deserialize an item from a lazy `rustdoc` index. This is a bug.",
941+
);
941942
Some(Cow::Owned(item))
942943
}
943944
}

0 commit comments

Comments
 (0)