Add Message Pack serialization
This commit is contained in:
parent
d13a167ac8
commit
f17e13fe25
29
Cargo.lock
generated
29
Cargo.lock
generated
@ -232,6 +232,12 @@ version = "6.3.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff"
|
checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "paste"
|
||||||
|
version = "1.0.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "percent-encoding"
|
name = "percent-encoding"
|
||||||
version = "2.2.0"
|
version = "2.2.0"
|
||||||
@ -324,6 +330,28 @@ dependencies = [
|
|||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rmp"
|
||||||
|
version = "0.8.11"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f"
|
||||||
|
dependencies = [
|
||||||
|
"byteorder",
|
||||||
|
"num-traits",
|
||||||
|
"paste",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rmp-serde"
|
||||||
|
version = "1.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "25786b0d276110195fa3d6f3f31299900cf71dfbd6c28450f3f58a0e7f7a347e"
|
||||||
|
dependencies = [
|
||||||
|
"byteorder",
|
||||||
|
"rmp",
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ron"
|
name = "ron"
|
||||||
version = "0.8.0"
|
version = "0.8.0"
|
||||||
@ -487,6 +515,7 @@ version = "0.1.0"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"clap",
|
"clap",
|
||||||
"json5",
|
"json5",
|
||||||
|
"rmp-serde",
|
||||||
"ron",
|
"ron",
|
||||||
"serde",
|
"serde",
|
||||||
"serde-pickle",
|
"serde-pickle",
|
||||||
|
@ -30,6 +30,7 @@ serde_json = "1.0"
|
|||||||
json5 = "0.4"
|
json5 = "0.4"
|
||||||
serde-pickle = "1.0"
|
serde-pickle = "1.0"
|
||||||
serde_qs = "0.10"
|
serde_qs = "0.10"
|
||||||
|
rmp-serde = "1.1"
|
||||||
ron = "0.8"
|
ron = "0.8"
|
||||||
#toml = "0.5"
|
#toml = "0.5"
|
||||||
serde_yaml = "0.9"
|
serde_yaml = "0.9"
|
||||||
|
13
src/lib.rs
13
src/lib.rs
@ -28,7 +28,8 @@ pub enum Input {
|
|||||||
Json,
|
Json,
|
||||||
Json5,
|
Json5,
|
||||||
Pickle,
|
Pickle,
|
||||||
//Qs, // NOTE: The crate is not notted "(serialization only)" on the [serde listing](https://serde.rs/#data-formats) but it does not expose a `Deserializer`
|
//Qs, // NOTE: The crate is not noted "(serialization only)" on the [serde listing](https://serde.rs/#data-formats) but it does not expose a `Deserializer`
|
||||||
|
//Rmp, // NOTE: It appears that we are forced to deserialize into a concrete type
|
||||||
Ron,
|
Ron,
|
||||||
//Toml
|
//Toml
|
||||||
Yaml,
|
Yaml,
|
||||||
@ -39,9 +40,10 @@ pub enum Output {
|
|||||||
//Bson,
|
//Bson,
|
||||||
//Cbor,
|
//Cbor,
|
||||||
Json,
|
Json,
|
||||||
//Json5, // NOTE: The crate is not notted "(deserialization only)" on the [serde listing](https://serde.rs/#data-formats) but it does not expose a `Serializer`
|
//Json5, // NOTE: The crate is not noted "(deserialization only)" on the [serde listing](https://serde.rs/#data-formats) but it does not expose a `Serializer`
|
||||||
Pickle,
|
Pickle,
|
||||||
Qs,
|
Qs,
|
||||||
|
Rmp,
|
||||||
Ron,
|
Ron,
|
||||||
//Toml,
|
//Toml,
|
||||||
Yaml,
|
Yaml,
|
||||||
@ -168,6 +170,13 @@ where
|
|||||||
|
|
||||||
serde_transcode::transcode(deserializer, serializer).unwrap();
|
serde_transcode::transcode(deserializer, serializer).unwrap();
|
||||||
}
|
}
|
||||||
|
Output::Rmp => {
|
||||||
|
use rmp_serde::Serializer;
|
||||||
|
|
||||||
|
let serializer = &mut Serializer::new(output);
|
||||||
|
|
||||||
|
serde_transcode::transcode(deserializer, serializer).unwrap();
|
||||||
|
}
|
||||||
Output::Ron => {
|
Output::Ron => {
|
||||||
use ron::Serializer;
|
use ron::Serializer;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user