From 1c40af5a12870e5dc4a4f3e0a9c79d0e9921021a Mon Sep 17 00:00:00 2001 From: Deirdre Connolly Date: Tue, 7 Jul 2020 17:35:53 -0400 Subject: [PATCH] Rename structs to remove module's name To follow this convention RFC: https://github.com/rust-lang/rfcs/pull/356 --- zebra-consensus/src/verify.rs | 3 +-- zebra-consensus/src/verify/redjubjub.rs | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/zebra-consensus/src/verify.rs b/zebra-consensus/src/verify.rs index e5c753e9002..bbde66bfe62 100644 --- a/zebra-consensus/src/verify.rs +++ b/zebra-consensus/src/verify.rs @@ -4,9 +4,8 @@ //! verification. mod block; -mod redjubjub; +pub mod redjubjub; mod script; mod transaction; -pub use self::redjubjub::{RedJubjubItem, RedJubjubVerifier}; pub use block::init; diff --git a/zebra-consensus/src/verify/redjubjub.rs b/zebra-consensus/src/verify/redjubjub.rs index c094b1d1531..4211bc675d0 100644 --- a/zebra-consensus/src/verify/redjubjub.rs +++ b/zebra-consensus/src/verify/redjubjub.rs @@ -1,3 +1,5 @@ +//! Async RedJubjub batch verifier service + use std::{ future::Future, mem, @@ -6,13 +8,13 @@ use std::{ }; use rand::thread_rng; -use redjubjub::*; +use redjubjub::{batch, *}; use tokio::sync::broadcast::{channel, RecvError, Sender}; use tower::Service; use tower_batch::BatchControl; /// RedJubjub signature verifier service -pub struct RedJubjubVerifier { +pub struct Verifier { batch: batch::Verifier, // This uses a "broadcast" channel, which is an mpmc channel. Tokio also // provides a spmc channel, "watch", but it only keeps the latest value, so @@ -22,7 +24,7 @@ pub struct RedJubjubVerifier { } #[allow(clippy::new_without_default)] -impl RedJubjubVerifier { +impl Verifier { /// Create a new RedJubjubVerifier instance pub fn new() -> Self { let batch = batch::Verifier::default(); @@ -33,9 +35,9 @@ impl RedJubjubVerifier { } /// Type alias to clarify that this batch::Item is a RedJubjubItem -pub type RedJubjubItem = batch::Item; +pub type Item = batch::Item; -impl Service> for RedJubjubVerifier { +impl Service> for Verifier { type Response = (); type Error = Error; type Future = Pin> + Send + 'static>>; @@ -44,7 +46,7 @@ impl Service> for RedJubjubVerifier { Poll::Ready(Ok(())) } - fn call(&mut self, req: BatchControl) -> Self::Future { + fn call(&mut self, req: BatchControl) -> Self::Future { match req { BatchControl::Item(item) => { tracing::trace!("got item"); @@ -74,7 +76,7 @@ impl Service> for RedJubjubVerifier { } } -impl Drop for RedJubjubVerifier { +impl Drop for Verifier { fn drop(&mut self) { // We need to flush the current batch in case there are still any pending futures. let batch = mem::take(&mut self.batch); @@ -95,7 +97,7 @@ mod tests { async fn sign_and_verify(mut verifier: V, n: usize) -> Result<(), V::Error> where - V: Service, + V: Service, { let rng = thread_rng(); let mut results = FuturesUnordered::new(); @@ -136,7 +138,7 @@ mod tests { // Use a very long max_latency and a short timeout to check that // flushing is happening based on hitting max_items. - let verifier = Batch::new(RedJubjubVerifier::new(), 10, Duration::from_secs(1000)); + let verifier = Batch::new(Verifier::new(), 10, Duration::from_secs(1000)); timeout(Duration::from_secs(5), sign_and_verify(verifier, 100)).await? } @@ -147,7 +149,7 @@ mod tests { // Use a very high max_items and a short timeout to check that // flushing is happening based on hitting max_latency. - let verifier = Batch::new(RedJubjubVerifier::new(), 100, Duration::from_millis(500)); + let verifier = Batch::new(Verifier::new(), 100, Duration::from_millis(500)); timeout(Duration::from_secs(5), sign_and_verify(verifier, 10)).await? } }