pub struct Config<DB, R>{
pub context: DB::Context,
pub resolver: R,
pub target: Target<DB::Digest>,
pub max_outstanding_requests: usize,
pub fetch_batch_size: NonZeroU64,
pub apply_batch_size: usize,
pub db_config: DB::Config,
pub update_rx: Option<Receiver<Target<DB::Digest>>>,
pub finish_rx: Option<Receiver<()>>,
pub reached_target_tx: Option<Sender<Target<DB::Digest>>>,
pub max_retained_roots: usize,
}Expand description
Configuration for creating a new Engine
Fields§
§context: DB::ContextRuntime context for creating database components
resolver: RNetwork resolver for fetching operations and proofs
target: Target<DB::Digest>Sync target (root digest and operation bounds)
max_outstanding_requests: usizeMaximum number of outstanding requests for operation batches
fetch_batch_size: NonZeroU64Maximum operations to fetch per batch
apply_batch_size: usizeNumber of operations to apply in a single batch
db_config: DB::ConfigDatabase-specific configuration
update_rx: Option<Receiver<Target<DB::Digest>>>Channel for receiving sync target updates
finish_rx: Option<Receiver<()>>Channel that requests sync completion once the current target is reached.
When None, sync completes as soon as the target is reached.
reached_target_tx: Option<Sender<Target<DB::Digest>>>Channel used to notify an observer once the current target is reached. The engine sends at most one notification for each target.
When reached_target_tx is Some(...), this receiver must be actively
drained by the observer. The engine awaits send capacity on this channel before
proceeding, so backpressure can pause progress at target.
max_retained_roots: usizeMaximum number of previous roots to retain for verifying in-flight requests after target updates. Set to 0 to disable (all retained requests will be re-fetched).
Auto Trait Implementations§
impl<DB, R> Freeze for Config<DB, R>
impl<DB, R> RefUnwindSafe for Config<DB, R>where
<DB as Database>::Context: RefUnwindSafe,
R: RefUnwindSafe,
<DB as Database>::Config: RefUnwindSafe,
<DB as Database>::Digest: RefUnwindSafe,
impl<DB, R> Send for Config<DB, R>where
<DB as Database>::Config: Send,
impl<DB, R> Sync for Config<DB, R>where
<DB as Database>::Config: Sync,
impl<DB, R> Unpin for Config<DB, R>
impl<DB, R> UnsafeUnpin for Config<DB, R>where
<DB as Database>::Context: UnsafeUnpin,
R: UnsafeUnpin,
<DB as Database>::Config: UnsafeUnpin,
<DB as Database>::Digest: UnsafeUnpin,
impl<DB, R> UnwindSafe for Config<DB, R>where
<DB as Database>::Context: UnwindSafe,
R: UnwindSafe,
<DB as Database>::Config: UnwindSafe,
<DB as Database>::Digest: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more