Skip to content

Commit 85b3231

Browse files
nit
1 parent 38d2305 commit 85b3231

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

consensus/src/marshal/resolver/handler.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ use bytes::{Buf, BufMut, Bytes};
33
use commonware_actor::mailbox::{self, Overflow, Policy, Sender};
44
use commonware_codec::{EncodeSize, Error as CodecError, Read, ReadExt, Write};
55
use commonware_cryptography::Digest;
6+
use commonware_runtime::Metrics;
67
use commonware_resolver::{p2p::Producer, Consumer, Delivery, Fetch as ResolverFetch};
78
use commonware_utils::{channel::oneshot, Span};
89
use std::{
910
collections::VecDeque,
1011
fmt::{Debug, Display},
1112
hash::{Hash, Hasher},
13+
num::NonZeroUsize,
1214
sync::mpsc::TryRecvError,
1315
};
1416

@@ -95,7 +97,7 @@ impl<D: Digest> Policy for Message<D> {
9597
/// This struct implements the [Consumer] and [Producer] traits from the
9698
/// resolver, and acts as a bridge to the main actor loop.
9799
#[derive(Clone)]
98-
pub(crate) struct Handler<D: Digest> {
100+
pub struct Handler<D: Digest> {
99101
sender: Sender<Message<D>>,
100102
}
101103

@@ -106,6 +108,15 @@ impl<D: Digest> Handler<D> {
106108
}
107109
}
108110

111+
/// Creates a resolver receiver and handler pair.
112+
pub fn init<D: Digest>(
113+
metrics: impl Metrics,
114+
capacity: NonZeroUsize,
115+
) -> (Receiver<D>, Handler<D>) {
116+
let (sender, receiver) = mailbox::new(metrics, capacity);
117+
(Receiver::new(receiver), Handler::new(sender))
118+
}
119+
109120
/// Receiver for resolver handler messages.
110121
pub struct Receiver<D: Digest> {
111122
inner: mailbox::Receiver<Message<D>>,

0 commit comments

Comments
 (0)