op_pool: remove SszPair

This commit is contained in:
Michael Sproul 2019-07-01 15:21:11 +10:00
parent 44ed3228b9
commit a04b1f981e
No known key found for this signature in database
GPG Key ID: 77B1309D2E54E914

View File

@ -1,7 +1,6 @@
use crate::attestation_id::AttestationId; use crate::attestation_id::AttestationId;
use crate::OperationPool; use crate::OperationPool;
use parking_lot::RwLock; use parking_lot::RwLock;
use ssz::{Decode, Encode};
use ssz_derive::{Decode, Encode}; use ssz_derive::{Decode, Encode};
use types::*; use types::*;
@ -14,7 +13,7 @@ pub struct PersistedOperationPool {
/// Mapping from attestation ID to attestation mappings. /// Mapping from attestation ID to attestation mappings.
// We could save space by not storing the attestation ID, but it might // We could save space by not storing the attestation ID, but it might
// be difficult to make that roundtrip due to eager aggregation. // be difficult to make that roundtrip due to eager aggregation.
attestations: Vec<SszPair<AttestationId, Vec<Attestation>>>, attestations: Vec<(AttestationId, Vec<Attestation>)>,
deposits: Vec<Deposit>, deposits: Vec<Deposit>,
/// Attester slashings. /// Attester slashings.
attester_slashings: Vec<AttesterSlashing>, attester_slashings: Vec<AttesterSlashing>,
@ -33,7 +32,7 @@ impl PersistedOperationPool {
.attestations .attestations
.read() .read()
.iter() .iter()
.map(|(att_id, att)| SszPair::new(att_id.clone(), att.clone())) .map(|(att_id, att)| (att_id.clone(), att.clone()))
.collect(); .collect();
let deposits = operation_pool let deposits = operation_pool
@ -82,7 +81,7 @@ impl PersistedOperationPool {
state: &BeaconState<T>, state: &BeaconState<T>,
spec: &ChainSpec, spec: &ChainSpec,
) -> OperationPool<T> { ) -> OperationPool<T> {
let attestations = RwLock::new(self.attestations.into_iter().map(SszPair::into).collect()); let attestations = RwLock::new(self.attestations.into_iter().collect());
let deposits = RwLock::new(self.deposits.into_iter().map(|d| (d.index, d)).collect()); let deposits = RwLock::new(self.deposits.into_iter().map(|d| (d.index, d)).collect());
let attester_slashings = RwLock::new( let attester_slashings = RwLock::new(
self.attester_slashings self.attester_slashings
@ -120,36 +119,3 @@ impl PersistedOperationPool {
} }
} }
} }
/// Tuples for SSZ.
#[derive(Encode, Decode)]
struct SszPair<X: Encode + Decode, Y: Encode + Decode> {
x: X,
y: Y,
}
impl<X: Encode + Decode, Y: Encode + Decode> SszPair<X, Y> {
fn new(x: X, y: Y) -> Self {
Self { x, y }
}
}
impl<X, Y> From<(X, Y)> for SszPair<X, Y>
where
X: Encode + Decode,
Y: Encode + Decode,
{
fn from((x, y): (X, Y)) -> Self {
Self { x, y }
}
}
impl<X, Y> Into<(X, Y)> for SszPair<X, Y>
where
X: Encode + Decode,
Y: Encode + Decode,
{
fn into(self) -> (X, Y) {
(self.x, self.y)
}
}