@@ -6,7 +6,7 @@ use super::{
66 mailbox:: { CommitmentFallback , Mailbox , Message } ,
77 stream:: Stream ,
88 subscriptions:: { Key as SubscriptionKey , KeyFor as SubscriptionKeyFor , Subscriptions } ,
9- variant:: OptionalBuffer ,
9+ variant:: NoBuffer ,
1010 Buffer , Variant ,
1111} ;
1212use crate :: {
@@ -296,7 +296,7 @@ where
296296 pub fn start < R , Buf > (
297297 mut self ,
298298 application : impl Reporter < Activity = Update < V :: ApplicationBlock , A > > ,
299- buffer : Option < Buf > ,
299+ buffer : Buf ,
300300 resolver : ( handler:: Receiver < V :: Commitment > , R ) ,
301301 ) -> Handle < ( ) >
302302 where
@@ -307,15 +307,34 @@ where
307307 > ,
308308 Buf : Buffer < V , PublicKey = <P :: Scheme as CertificateScheme >:: PublicKey > ,
309309 {
310- let buffer = OptionalBuffer :: new ( buffer) ;
311310 spawn_cell ! ( self . context, self . run( application, buffer, resolver) )
312311 }
313312
313+ /// Start the actor without a broadcast buffer.
314+ pub fn start_unbuffered < R > (
315+ self ,
316+ application : impl Reporter < Activity = Update < V :: ApplicationBlock , A > > ,
317+ resolver : ( handler:: Receiver < V :: Commitment > , R ) ,
318+ ) -> Handle < ( ) >
319+ where
320+ R : Resolver <
321+ Key = ResolverRequestFor < V > ,
322+ Subscriber = Annotation ,
323+ PublicKey = <P :: Scheme as CertificateScheme >:: PublicKey ,
324+ > ,
325+ {
326+ self . start (
327+ application,
328+ NoBuffer :: < <P :: Scheme as CertificateScheme >:: PublicKey > :: new ( ) ,
329+ resolver,
330+ )
331+ }
332+
314333 /// Run the application actor.
315334 async fn run < R , Buf > (
316335 mut self ,
317336 mut application : impl Reporter < Activity = Update < V :: ApplicationBlock , A > > ,
318- mut buffer : OptionalBuffer < V , Buf > ,
337+ mut buffer : Buf ,
319338 ( mut resolver_rx, mut resolver) : ( handler:: Receiver < V :: Commitment > , R ) ,
320339 ) where
321340 R : Resolver <
@@ -436,7 +455,7 @@ where
436455 & mut self ,
437456 result : <A :: Waiter as Future >:: Output ,
438457 application : & mut impl Reporter < Activity = Update < V :: ApplicationBlock , A > > ,
439- buffer : & mut OptionalBuffer < V , Buf > ,
458+ buffer : & mut Buf ,
440459 resolver : & mut R ,
441460 ) where
442461 Buf : Buffer < V > ,
@@ -491,7 +510,7 @@ where
491510 message : Message < P :: Scheme , V > ,
492511 resolver : & mut R ,
493512 waiters : & mut AbortablePool < Result < V :: Block , SubscriptionKeyFor < V > > > ,
494- buffer : & mut OptionalBuffer < V , Buf > ,
513+ buffer : & mut Buf ,
495514 application : & mut impl Reporter < Activity = Update < V :: ApplicationBlock , A > > ,
496515 ) where
497516 Buf : Buffer < V , PublicKey = <P :: Scheme as CertificateScheme >:: PublicKey > ,
@@ -764,7 +783,7 @@ where
764783 message : handler:: Message < V :: Commitment > ,
765784 resolver_rx : & mut handler:: Receiver < V :: Commitment > ,
766785 resolver : & mut R ,
767- buffer : & mut OptionalBuffer < V , Buf > ,
786+ buffer : & mut Buf ,
768787 application : & mut impl Reporter < Activity = Update < V :: ApplicationBlock , A > > ,
769788 ) where
770789 Buf : Buffer < V , PublicKey = <P :: Scheme as CertificateScheme >:: PublicKey > ,
@@ -850,7 +869,7 @@ where
850869 & self ,
851870 key : ResolverRequestFor < V > ,
852871 response : oneshot:: Sender < Bytes > ,
853- buffer : & OptionalBuffer < V , Buf > ,
872+ buffer : & Buf ,
854873 ) {
855874 match key {
856875 Key :: Block ( commitment) => {
@@ -898,7 +917,7 @@ where
898917 PublicKey = <P :: Scheme as CertificateScheme >:: PublicKey ,
899918 > ,
900919 waiters : & mut AbortablePool < Result < V :: Block , SubscriptionKeyFor < V > > > ,
901- buffer : & mut OptionalBuffer < V , Buf > ,
920+ buffer : & mut Buf ,
902921 ) {
903922 let digest = match key {
904923 SubscriptionKey :: Digest ( digest) => digest,
@@ -985,7 +1004,7 @@ where
9851004 finalization : Finalization < P :: Scheme , V :: Commitment > ,
9861005 skip_if_superseded : bool ,
9871006 resolver : & mut R ,
988- buffer : & mut OptionalBuffer < V , Buf > ,
1007+ buffer : & mut Buf ,
9891008 application : & mut impl Reporter < Activity = Update < V :: ApplicationBlock , A > > ,
9901009 ) where
9911010 Buf : Buffer < V , PublicKey = <P :: Scheme as CertificateScheme >:: PublicKey > ,
@@ -1052,7 +1071,7 @@ where
10521071 async fn apply_floor_anchor < Buf : Buffer < V > > (
10531072 & mut self ,
10541073 block : & V :: Block ,
1055- buffer : & mut OptionalBuffer < V , Buf > ,
1074+ buffer : & mut Buf ,
10561075 application : & mut impl Reporter < Activity = Update < V :: ApplicationBlock , A > > ,
10571076 resolver : & mut impl Resolver <
10581077 Key = ResolverRequestFor < V > ,
@@ -1171,7 +1190,7 @@ where
11711190 & mut self ,
11721191 message : ResolverDelivery < V > ,
11731192 delivers : & mut Vec < PendingVerification < P :: Scheme , V > > ,
1174- buffer : & mut OptionalBuffer < V , Buf > ,
1193+ buffer : & mut Buf ,
11751194 application : & mut impl Reporter < Activity = Update < V :: ApplicationBlock , A > > ,
11761195 resolver : & mut impl Resolver <
11771196 Key = ResolverRequestFor < V > ,
@@ -1349,7 +1368,7 @@ where
13491368 async fn verify_delivered < Buf : Buffer < V > > (
13501369 & mut self ,
13511370 mut delivers : Vec < PendingVerification < P :: Scheme , V > > ,
1352- buffer : & mut OptionalBuffer < V , Buf > ,
1371+ buffer : & mut Buf ,
13531372 application : & mut impl Reporter < Activity = Update < V :: ApplicationBlock , A > > ,
13541373 resolver : & mut impl Resolver <
13551374 Key = ResolverRequestFor < V > ,
@@ -1848,7 +1867,7 @@ where
18481867 /// parent links).
18491868 async fn find_block_by_digest < Buf : Buffer < V > > (
18501869 & self ,
1851- buffer : & OptionalBuffer < V , Buf > ,
1870+ buffer : & Buf ,
18521871 digest : <V :: Block as Digestible >:: Digest ,
18531872 ) -> Option < V :: Block > {
18541873 if let Some ( block) = buffer. find_by_digest ( digest) . await {
@@ -1863,7 +1882,7 @@ where
18631882 /// Having the full commitment may enable additional retrieval mechanisms.
18641883 async fn find_block_by_commitment < Buf : Buffer < V > > (
18651884 & self ,
1866- buffer : & OptionalBuffer < V , Buf > ,
1885+ buffer : & Buf ,
18671886 commitment : V :: Commitment ,
18681887 ) -> Option < V :: Block > {
18691888 if let Some ( block) = buffer. find_by_commitment ( commitment) . await {
@@ -1888,7 +1907,7 @@ where
18881907 /// needs a subsequent [`sync_finalized`](Self::sync_finalized).
18891908 async fn try_repair_gaps < Buf : Buffer < V > > (
18901909 & mut self ,
1891- buffer : & mut OptionalBuffer < V , Buf > ,
1910+ buffer : & mut Buf ,
18921911 resolver : & mut impl Resolver <
18931912 Key = ResolverRequestFor < V > ,
18941913 Subscriber = Annotation ,
0 commit comments