11use crate :: { Decoder , Encoder } ;
2- use rkyv:: de:: deserializers:: SharedDeserializeMap ;
3- use rkyv:: ser:: serializers:: AllocSerializer ;
4- use rkyv:: validation:: validators:: DefaultValidator ;
5- use rkyv:: { Archive , CheckBytes , Deserialize , Fallible , Serialize } ;
2+ use rkyv:: api:: high:: { HighSerializer , HighValidator } ;
3+ use rkyv:: de:: Pool ;
4+ use rkyv:: rancor:: Strategy ;
5+ use rkyv:: ser:: allocator:: ArenaHandle ;
6+ use rkyv:: { bytecheck, rancor, Archive , Deserialize , Serialize } ;
67use std:: error:: Error ;
78use std:: sync:: Arc ;
89
@@ -13,27 +14,28 @@ pub struct RkyvCodec;
1314
1415impl < T > Encoder < T > for RkyvCodec
1516where
16- T : Serialize < AllocSerializer < 1024 > > ,
17+ T : for < ' a > Serialize < HighSerializer < Vec < u8 > , ArenaHandle < ' a > , rancor :: Error > > ,
1718{
18- type Error = < AllocSerializer < 1024 > as Fallible > :: Error ;
19+ type Error = rancor :: Error ;
1920 type Encoded = Vec < u8 > ;
2021
2122 fn encode ( val : & T ) -> Result < Self :: Encoded , Self :: Error > {
22- Ok ( rkyv:: to_bytes :: < T , 1024 > ( val) ? . to_vec ( ) )
23+ rkyv:: api :: high :: to_bytes_in ( val, Vec :: new ( ) )
2324 }
2425}
2526
2627impl < T > Decoder < T > for RkyvCodec
2728where
2829 T : Archive ,
29- for < ' a > T :: Archived :
30- ' a + CheckBytes < DefaultValidator < ' a > > + Deserialize < T , SharedDeserializeMap > ,
30+ for < ' a > T :: Archived : ' a
31+ + bytecheck:: CheckBytes < HighValidator < ' a , rancor:: Error > >
32+ + Deserialize < T , Strategy < Pool , rancor:: Error > > ,
3133{
3234 type Error = Arc < dyn Error > ;
3335 type Encoded = [ u8 ] ;
3436
3537 fn decode ( val : & Self :: Encoded ) -> Result < T , Self :: Error > {
36- rkyv:: from_bytes :: < T > ( val) . map_err ( |e| Arc :: new ( e) as Arc < dyn Error > )
38+ rkyv:: from_bytes :: < T , rancor :: Error > ( val) . map_err ( |e| Arc :: new ( e) as Arc < dyn Error > )
3739 }
3840}
3941
@@ -44,7 +46,6 @@ mod tests {
4446 #[ test]
4547 fn test_rkyv_codec ( ) {
4648 #[ derive( Clone , Debug , PartialEq , rkyv:: Archive , rkyv:: Serialize , rkyv:: Deserialize ) ]
47- #[ archive( check_bytes) ]
4849 struct Test {
4950 s : String ,
5051 i : i32 ,
0 commit comments