feat: add gob

This commit is contained in:
2022-03-26 10:47:58 +08:00
parent 2b3e2a7c87
commit 46d24a8e24
4 changed files with 246 additions and 1 deletions

View File

@@ -10,6 +10,7 @@ Project or files:
│   └── goblin │   └── goblin
├── __concurrent ├── __concurrent
│   ├── arc-swap │   ├── arc-swap
│   ├── async_study
│   ├── crossbeam_n_parking_lot │   ├── crossbeam_n_parking_lot
│   ├── glommio │   ├── glommio
│   ├── green-threads │   ├── green-threads
@@ -139,6 +140,7 @@ Project or files:
│   ├── csv │   ├── csv
│   ├── encoding │   ├── encoding
│   ├── flatbuffers │   ├── flatbuffers
│   ├── gob
│   ├── hjson │   ├── hjson
│   ├── no_proto │   ├── no_proto
│   ├── prost │   ├── prost
@@ -213,7 +215,7 @@ Project or files:
├── vec.rs ├── vec.rs
└── while.rs └── while.rs
183 directories, 33 files 185 directories, 33 files
``` ```

207
__serialization/gob/Cargo.lock generated Normal file
View File

@@ -0,0 +1,207 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "byteorder"
version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]]
name = "bytes"
version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
dependencies = [
"byteorder",
"iovec",
]
[[package]]
name = "gob"
version = "0.1.0"
dependencies = [
"gob 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde",
"serde_derive",
"serde_schema",
"serde_schema_derive",
]
[[package]]
name = "gob"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bb0747305a4fb19e72248a73bd1f47c887fcba035283f8ca29926725a1cff66"
dependencies = [
"byteorder",
"bytes",
"iovec",
"lazy_static",
"owning_ref",
"safemem",
"serde",
"serde_derive",
"serde_schema",
"serde_schema_derive",
]
[[package]]
name = "iovec"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
dependencies = [
"libc",
]
[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
version = "0.2.121"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f"
[[package]]
name = "owning_ref"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37"
dependencies = [
"stable_deref_trait",
]
[[package]]
name = "proc-macro2"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b06e2f335f48d24442b35a19df506a835fb3547bc3c06ef27340da9acf5cae7"
dependencies = [
"unicode-xid 0.1.0",
]
[[package]]
name = "proc-macro2"
version = "1.0.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
dependencies = [
"unicode-xid 0.2.2",
]
[[package]]
name = "quote"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9949cfe66888ffe1d53e6ec9d9f3b70714083854be20fd5e271b232a017401e8"
dependencies = [
"proc-macro2 0.3.8",
]
[[package]]
name = "quote"
version = "1.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4af2ec4714533fcdf07e886f17025ace8b997b9ce51204ee69b6da831c3da57"
dependencies = [
"proc-macro2 1.0.36",
]
[[package]]
name = "safemem"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
[[package]]
name = "serde"
version = "1.0.136"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
[[package]]
name = "serde_derive"
version = "1.0.136"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9"
dependencies = [
"proc-macro2 1.0.36",
"quote 1.0.16",
"syn 1.0.89",
]
[[package]]
name = "serde_derive_internals"
version = "0.23.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d30c4596450fd7bbda79ef15559683f9a79ac0193ea819db90000d7e1cae794"
dependencies = [
"proc-macro2 0.3.8",
"syn 0.13.11",
]
[[package]]
name = "serde_schema"
version = "0.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2894ca8303871f3cc304a3326d3abdc352b2965eb94a24188d213dc9c6241ee1"
dependencies = [
"serde",
]
[[package]]
name = "serde_schema_derive"
version = "0.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ff66a3ce5a7f8418b70acb13527ace32c2d784eb7ac7e208344c041a2ef00c7"
dependencies = [
"quote 0.5.2",
"serde_derive_internals",
"syn 0.13.11",
]
[[package]]
name = "stable_deref_trait"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]]
name = "syn"
version = "0.13.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14f9bf6292f3a61d2c716723fdb789a41bbe104168e6f496dc6497e531ea1b9b"
dependencies = [
"proc-macro2 0.3.8",
"quote 0.5.2",
"unicode-xid 0.1.0",
]
[[package]]
name = "syn"
version = "1.0.89"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea297be220d52398dcc07ce15a209fce436d361735ac1db700cab3b6cdfb9f54"
dependencies = [
"proc-macro2 1.0.36",
"quote 1.0.16",
"unicode-xid 0.2.2",
]
[[package]]
name = "unicode-xid"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
[[package]]
name = "unicode-xid"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"

View File

@@ -0,0 +1,13 @@
[package]
name = "gob"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
serde = "1.0.136"
serde_derive = "1.0.136"
gob = "0.1.0"
serde_schema = "0.0.1"
serde_schema_derive = "0.0.1"

View File

@@ -0,0 +1,23 @@
extern crate gob;
extern crate serde;
#[macro_use]
extern crate serde_derive;
extern crate serde_schema_derive;
use gob::StreamSerializer;
use serde_schema_derive::SchemaSerialize;
#[derive(Serialize, SchemaSerialize)]
struct Point {
#[serde(rename = "X")]
x: i64,
#[serde(rename = "Y")]
y: i64,
}
fn main() {
let mut buffer = Vec::new();
let mut stream = StreamSerializer::new_with_write(&mut buffer);
stream.serialize(&Point { x: 22, y: 33 }).unwrap();
println!("{:?}", buffer);
}