Skip to content

Commit 52f6a35

Browse files
authored
Merge pull request #4 from Synphonyte/feature/rkyv-8
Feature/rkyv 8
2 parents 8b5194d + e6aafe7 commit 52f6a35

File tree

2 files changed

+19
-18
lines changed

2 files changed

+19
-18
lines changed

Cargo.toml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "codee"
3-
version = "0.2.0"
3+
version = "0.3.0"
44
edition = "2021"
55
authors = ["Marc-Stefan Cassola"]
66
categories = ["encoding"]
@@ -12,18 +12,18 @@ readme = "README.md"
1212
repository = "https://github.com/Synphonyte/codee"
1313

1414
[dependencies]
15-
base64 = { version = "0.21", optional = true }
15+
base64 = { version = "0.22", optional = true }
1616
bincode = { version = "1", optional = true }
1717
js-sys = { version = "0.3", optional = true }
1818
miniserde = { version = "0.1", optional = true }
19-
prost = { version = "0.12", optional = true }
20-
rkyv = { version = "0.7", optional = true, features = ["validation", "strict"] }
19+
prost = { version = "0.13", optional = true }
20+
rkyv = { version = "0.8.9", optional = true }
2121
rmp-serde = { version = "1.1", optional = true }
2222
serde = { version = "1", optional = true }
2323
serde_json = { version = "1", optional = true }
2424
serde-lite = { version = "0.5", optional = true }
2525
serde-wasm-bindgen = { version = "0.6", optional = true }
26-
thiserror = "1.0.61"
26+
thiserror = "2.0"
2727
wasm-bindgen = { version = "0.2", optional = true }
2828

2929
[features]
@@ -38,8 +38,8 @@ json_serde_wasm = ["dep:serde", "dep:serde_json", "dep:js-sys", "dep:serde-wasm-
3838
[dev-dependencies]
3939
serde = { version = "1", features = ["derive"] }
4040
serde-lite = { version = "0.5", features = ["derive"] }
41-
leptos = "0.6"
42-
leptos-use = "0.12"
41+
leptos = "0.7"
42+
leptos-use = "0.15"
4343

4444
[package.metadata.docs.rs]
4545
all-features = true

src/binary/rkyv.rs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
use 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};
67
use std::error::Error;
78
use std::sync::Arc;
89

@@ -13,27 +14,28 @@ pub struct RkyvCodec;
1314

1415
impl<T> Encoder<T> for RkyvCodec
1516
where
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

2627
impl<T> Decoder<T> for RkyvCodec
2728
where
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

Comments
 (0)