@@ -4,6 +4,7 @@ use std::borrow::Cow;
44
55use guppy:: PackageId ;
66use rusqlite:: params;
7+ use serde:: de:: DeserializeOwned ;
78use tracing:: instrument;
89
910use super :: entry:: { CacheEntry , SecondaryIndexes } ;
@@ -31,7 +32,7 @@ impl ToolchainCache {
3132 level=tracing:: Level :: DEBUG ,
3233 fields( crate . name = %name)
3334 ) ]
34- pub ( super ) fn get < A : bincode :: Decode < ( ) > + Default > (
35+ pub ( super ) fn get < A : DeserializeOwned + Default > (
3536 & self ,
3637 name : & str ,
3738 cargo_fingerprint : & str ,
@@ -167,17 +168,20 @@ impl CacheEntry<'_> {
167168 /// We hydrate all mappings eagerly, but we avoid re-hydrating the item index eagerly,
168169 /// since it can be quite large and deserialization can be slow for large crates.
169170 /// The item index is stored as rkyv-serialized bytes for zero-copy access.
170- pub fn hydrate < A : bincode :: Decode < ( ) > + Default > (
171+ pub fn hydrate < A : DeserializeOwned + Default > (
171172 self ,
172173 package_id : PackageId ,
173174 ) -> Result < HydratedCacheEntry < A > , anyhow:: Error > {
174175 use anyhow:: Context ;
175176
176177 let crate_data = CrateData {
177178 root_item_id : rustdoc_types:: Id ( self . root_item_id . to_owned ( ) ) ,
178- external_crates : bincode:: decode_from_slice ( & self . external_crates , BINCODE_CONFIG )
179- . context ( "Failed to deserialize external_crates" ) ?
180- . 0 ,
179+ external_crates : bincode:: serde:: decode_from_slice (
180+ & self . external_crates ,
181+ BINCODE_CONFIG ,
182+ )
183+ . context ( "Failed to deserialize external_crates" ) ?
184+ . 0 ,
181185 paths : CrateItemPaths :: Lazy ( LazyCrateItemPaths {
182186 bytes : self . paths . into_owned ( ) ,
183187 } ) ,
@@ -191,16 +195,17 @@ impl CacheEntry<'_> {
191195 } ;
192196
193197 let import_index =
194- bincode:: decode_from_slice ( & secondary_indexes. import_index , BINCODE_CONFIG )
198+ bincode:: serde :: decode_from_slice ( & secondary_indexes. import_index , BINCODE_CONFIG )
195199 . context ( "Failed to deserialize import_index" ) ?
196200 . 0 ;
197201
198- let re_exports = bincode:: decode_from_slice ( & secondary_indexes. re_exports , BINCODE_CONFIG )
199- . context ( "Failed to deserialize re-exports" ) ?
200- . 0 ;
202+ let re_exports =
203+ bincode:: serde:: decode_from_slice ( & secondary_indexes. re_exports , BINCODE_CONFIG )
204+ . context ( "Failed to deserialize re-exports" ) ?
205+ . 0 ;
201206
202207 let annotated_items: A = if let Some ( data) = secondary_indexes. annotated_items {
203- bincode:: decode_from_slice ( & data, BINCODE_CONFIG )
208+ bincode:: serde :: decode_from_slice ( & data, BINCODE_CONFIG )
204209 . context ( "Failed to deserialize annotated_items" ) ?
205210 . 0
206211 } else {
0 commit comments