mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-08 01:05:47 +00:00
Re-export context_deserialize_derive inside context_deserialize (#7852)
Re-export `context_deserialize_derive` inside of `context_deserialize` so they are both available from the same interface, which matches how popular crates (like `serde`) handle this. This also nests both crates inside a new `context_deserialize` directory which will make it easier to eventually spin out into a different repo (if/when) we decide to do that (plus I prefer it aesthetically).
This commit is contained in:
3
Cargo.lock
generated
3
Cargo.lock
generated
@@ -1786,6 +1786,7 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
|
|||||||
name = "context_deserialize"
|
name = "context_deserialize"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"context_deserialize_derive",
|
||||||
"milhouse",
|
"milhouse",
|
||||||
"serde",
|
"serde",
|
||||||
"ssz_types",
|
"ssz_types",
|
||||||
@@ -2603,7 +2604,6 @@ dependencies = [
|
|||||||
"compare_fields",
|
"compare_fields",
|
||||||
"compare_fields_derive",
|
"compare_fields_derive",
|
||||||
"context_deserialize",
|
"context_deserialize",
|
||||||
"context_deserialize_derive",
|
|
||||||
"derivative",
|
"derivative",
|
||||||
"eth2_network_config",
|
"eth2_network_config",
|
||||||
"ethereum_ssz",
|
"ethereum_ssz",
|
||||||
@@ -9897,7 +9897,6 @@ dependencies = [
|
|||||||
"compare_fields",
|
"compare_fields",
|
||||||
"compare_fields_derive",
|
"compare_fields_derive",
|
||||||
"context_deserialize",
|
"context_deserialize",
|
||||||
"context_deserialize_derive",
|
|
||||||
"criterion",
|
"criterion",
|
||||||
"derivative",
|
"derivative",
|
||||||
"eth2_interop_keypairs",
|
"eth2_interop_keypairs",
|
||||||
|
|||||||
10
Cargo.toml
10
Cargo.toml
@@ -48,8 +48,8 @@ members = [
|
|||||||
"common/validator_dir",
|
"common/validator_dir",
|
||||||
"common/warp_utils",
|
"common/warp_utils",
|
||||||
"common/workspace_members",
|
"common/workspace_members",
|
||||||
"consensus/context_deserialize",
|
"consensus/context_deserialize/context_deserialize",
|
||||||
"consensus/context_deserialize_derive",
|
"consensus/context_deserialize/context_deserialize_derive",
|
||||||
"consensus/fixed_bytes",
|
"consensus/fixed_bytes",
|
||||||
"consensus/fork_choice",
|
"consensus/fork_choice",
|
||||||
"consensus/int_to_bytes",
|
"consensus/int_to_bytes",
|
||||||
@@ -123,8 +123,10 @@ clap_utils = { path = "common/clap_utils" }
|
|||||||
compare_fields = { path = "common/compare_fields" }
|
compare_fields = { path = "common/compare_fields" }
|
||||||
compare_fields_derive = { path = "common/compare_fields_derive" }
|
compare_fields_derive = { path = "common/compare_fields_derive" }
|
||||||
console-subscriber = "0.4"
|
console-subscriber = "0.4"
|
||||||
context_deserialize = { path = "consensus/context_deserialize" }
|
context_deserialize = { path = "consensus/context_deserialize/context_deserialize", features = [
|
||||||
context_deserialize_derive = { path = "consensus/context_deserialize_derive" }
|
"all",
|
||||||
|
] }
|
||||||
|
context_deserialize_derive = { path = "consensus/context_deserialize/context_deserialize_derive" }
|
||||||
criterion = "0.5"
|
criterion = "0.5"
|
||||||
delay_map = "0.4"
|
delay_map = "0.4"
|
||||||
deposit_contract = { path = "common/deposit_contract" }
|
deposit_contract = { path = "common/deposit_contract" }
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
[package]
|
|
||||||
name = "context_deserialize"
|
|
||||||
version = "0.1.0"
|
|
||||||
edition = "2021"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
milhouse = { workspace = true }
|
|
||||||
serde = { workspace = true }
|
|
||||||
ssz_types = { workspace = true }
|
|
||||||
17
consensus/context_deserialize/context_deserialize/Cargo.toml
Normal file
17
consensus/context_deserialize/context_deserialize/Cargo.toml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
[package]
|
||||||
|
name = "context_deserialize"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
default = ["derive"]
|
||||||
|
derive = ["dep:context_deserialize_derive"]
|
||||||
|
milhouse = ["dep:milhouse"]
|
||||||
|
ssz = ["dep:ssz_types"]
|
||||||
|
all = ["derive", "milhouse", "ssz"]
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
context_deserialize_derive = { version = "0.1.0", path = "../context_deserialize_derive", optional = true }
|
||||||
|
milhouse = { workspace = true, optional = true }
|
||||||
|
serde = { workspace = true }
|
||||||
|
ssz_types = { workspace = true, optional = true }
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
mod core;
|
||||||
|
|
||||||
|
#[cfg(feature = "milhouse")]
|
||||||
|
mod milhouse;
|
||||||
|
|
||||||
|
#[cfg(feature = "ssz")]
|
||||||
|
mod ssz;
|
||||||
@@ -1,10 +1,13 @@
|
|||||||
use crate::serde::de::Error;
|
|
||||||
use crate::ContextDeserialize;
|
use crate::ContextDeserialize;
|
||||||
use serde::de::Deserializer;
|
use serde::{
|
||||||
use serde::Deserialize;
|
de::{Deserializer, Error},
|
||||||
use ssz_types::length::{Fixed, Variable};
|
Deserialize,
|
||||||
use ssz_types::typenum::Unsigned;
|
};
|
||||||
use ssz_types::{Bitfield, FixedVector};
|
use ssz_types::{
|
||||||
|
length::{Fixed, Variable},
|
||||||
|
typenum::Unsigned,
|
||||||
|
Bitfield, FixedVector,
|
||||||
|
};
|
||||||
|
|
||||||
impl<'de, C, T, N> ContextDeserialize<'de, C> for FixedVector<T, N>
|
impl<'de, C, T, N> ContextDeserialize<'de, C> for FixedVector<T, N>
|
||||||
where
|
where
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
pub mod impls;
|
mod impls;
|
||||||
pub mod milhouse;
|
|
||||||
pub mod ssz_impls;
|
#[cfg(feature = "derive")]
|
||||||
|
pub use context_deserialize_derive::context_deserialize;
|
||||||
|
|
||||||
extern crate serde;
|
|
||||||
use serde::de::Deserializer;
|
use serde::de::Deserializer;
|
||||||
|
|
||||||
/// General-purpose deserialization trait that accepts extra context `C`.
|
/// General-purpose deserialization trait that accepts extra context `C`.
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
use context_deserialize::ContextDeserialize;
|
use context_deserialize::{context_deserialize, ContextDeserialize};
|
||||||
use context_deserialize_derive::context_deserialize;
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@@ -1,7 +1,10 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "types"
|
name = "types"
|
||||||
version = "0.2.1"
|
version = "0.2.1"
|
||||||
authors = ["Paul Hauner <paul@paulhauner.com>", "Age Manning <Age@AgeManning.com>"]
|
authors = [
|
||||||
|
"Paul Hauner <paul@paulhauner.com>",
|
||||||
|
"Age Manning <Age@AgeManning.com>",
|
||||||
|
]
|
||||||
edition = { workspace = true }
|
edition = { workspace = true }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
@@ -28,7 +31,6 @@ bls = { workspace = true }
|
|||||||
compare_fields = { workspace = true }
|
compare_fields = { workspace = true }
|
||||||
compare_fields_derive = { workspace = true }
|
compare_fields_derive = { workspace = true }
|
||||||
context_deserialize = { workspace = true }
|
context_deserialize = { workspace = true }
|
||||||
context_deserialize_derive = { workspace = true }
|
|
||||||
derivative = { workspace = true }
|
derivative = { workspace = true }
|
||||||
eth2_interop_keypairs = { path = "../../common/eth2_interop_keypairs" }
|
eth2_interop_keypairs = { path = "../../common/eth2_interop_keypairs" }
|
||||||
ethereum_hashing = { workspace = true }
|
ethereum_hashing = { workspace = true }
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
use crate::slot_data::SlotData;
|
use crate::slot_data::SlotData;
|
||||||
use crate::test_utils::TestRandom;
|
use crate::test_utils::TestRandom;
|
||||||
use crate::{Checkpoint, ForkName, Hash256, SignedRoot, Slot};
|
use crate::{Checkpoint, ForkName, Hash256, SignedRoot, Slot};
|
||||||
use context_deserialize_derive::context_deserialize;
|
use context_deserialize::context_deserialize;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use ssz_derive::{Decode, Encode};
|
use ssz_derive::{Decode, Encode};
|
||||||
use test_random_derive::TestRandom;
|
use test_random_derive::TestRandom;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
use crate::test_utils::TestRandom;
|
use crate::test_utils::TestRandom;
|
||||||
use crate::*;
|
use crate::*;
|
||||||
|
|
||||||
use context_deserialize_derive::context_deserialize;
|
use context_deserialize::context_deserialize;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use ssz_derive::{Decode, Encode};
|
use ssz_derive::{Decode, Encode};
|
||||||
use test_random_derive::TestRandom;
|
use test_random_derive::TestRandom;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
use crate::test_utils::TestRandom;
|
use crate::test_utils::TestRandom;
|
||||||
use crate::{Epoch, ForkName, Hash256};
|
use crate::{Epoch, ForkName, Hash256};
|
||||||
use context_deserialize_derive::context_deserialize;
|
use context_deserialize::context_deserialize;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use ssz_derive::{Decode, Encode};
|
use ssz_derive::{Decode, Encode};
|
||||||
use test_random_derive::TestRandom;
|
use test_random_derive::TestRandom;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
use crate::test_utils::TestRandom;
|
use crate::test_utils::TestRandom;
|
||||||
use crate::{Epoch, ForkName};
|
use crate::{Epoch, ForkName};
|
||||||
use context_deserialize_derive::context_deserialize;
|
use context_deserialize::context_deserialize;
|
||||||
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use ssz_derive::{Decode, Encode};
|
use ssz_derive::{Decode, Encode};
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
use crate::test_utils::TestRandom;
|
use crate::test_utils::TestRandom;
|
||||||
use crate::{ForkName, Hash256, SignedRoot};
|
use crate::{ForkName, Hash256, SignedRoot};
|
||||||
use context_deserialize_derive::context_deserialize;
|
use context_deserialize::context_deserialize;
|
||||||
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use ssz_derive::{Decode, Encode};
|
use ssz_derive::{Decode, Encode};
|
||||||
|
|||||||
@@ -287,8 +287,7 @@ pub use bls::{
|
|||||||
AggregatePublicKey, AggregateSignature, Keypair, PublicKey, PublicKeyBytes, SecretKey,
|
AggregatePublicKey, AggregateSignature, Keypair, PublicKey, PublicKeyBytes, SecretKey,
|
||||||
Signature, SignatureBytes,
|
Signature, SignatureBytes,
|
||||||
};
|
};
|
||||||
pub use context_deserialize::ContextDeserialize;
|
pub use context_deserialize::{context_deserialize, ContextDeserialize};
|
||||||
pub use context_deserialize_derive::context_deserialize;
|
|
||||||
pub use kzg::{KzgCommitment, KzgProof, VERSIONED_HASH_VERSION_KZG};
|
pub use kzg::{KzgCommitment, KzgProof, VERSIONED_HASH_VERSION_KZG};
|
||||||
pub use milhouse::{self, List, Vector};
|
pub use milhouse::{self, List, Vector};
|
||||||
pub use ssz_types::{typenum, typenum::Unsigned, BitList, BitVector, FixedVector, VariableList};
|
pub use ssz_types::{typenum, typenum::Unsigned, BitList, BitVector, FixedVector, VariableList};
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ bls = { workspace = true }
|
|||||||
compare_fields = { workspace = true }
|
compare_fields = { workspace = true }
|
||||||
compare_fields_derive = { workspace = true }
|
compare_fields_derive = { workspace = true }
|
||||||
context_deserialize = { workspace = true }
|
context_deserialize = { workspace = true }
|
||||||
context_deserialize_derive = { workspace = true }
|
|
||||||
derivative = { workspace = true }
|
derivative = { workspace = true }
|
||||||
eth2_network_config = { workspace = true }
|
eth2_network_config = { workspace = true }
|
||||||
ethereum_ssz = { workspace = true }
|
ethereum_ssz = { workspace = true }
|
||||||
|
|||||||
@@ -4,8 +4,7 @@ use super::*;
|
|||||||
use crate::cases::common::{DecimalU128, DecimalU256, SszStaticType};
|
use crate::cases::common::{DecimalU128, DecimalU256, SszStaticType};
|
||||||
use crate::cases::ssz_static::{check_serialization, check_tree_hash};
|
use crate::cases::ssz_static::{check_serialization, check_tree_hash};
|
||||||
use crate::decode::{context_yaml_decode_file, log_file_access, snappy_decode_file};
|
use crate::decode::{context_yaml_decode_file, log_file_access, snappy_decode_file};
|
||||||
use context_deserialize::ContextDeserialize;
|
use context_deserialize::{context_deserialize, ContextDeserialize};
|
||||||
use context_deserialize_derive::context_deserialize;
|
|
||||||
use serde::{de::Error as SerdeError, Deserialize, Deserializer};
|
use serde::{de::Error as SerdeError, Deserialize, Deserializer};
|
||||||
use ssz_derive::{Decode, Encode};
|
use ssz_derive::{Decode, Encode};
|
||||||
use tree_hash::TreeHash;
|
use tree_hash::TreeHash;
|
||||||
|
|||||||
Reference in New Issue
Block a user