pub struct MirrorBootstrapReceiver { /* private fields */ }Expand description
Mirror-side cross-cluster snapshot receiver.
Thread-safe; wrap in Arc for shared use.
Implementations§
Source§impl MirrorBootstrapReceiver
impl MirrorBootstrapReceiver
Sourcepub fn new(data_dir: PathBuf, on_progress: ProgressCallback) -> Self
pub fn new(data_dir: PathBuf, on_progress: ProgressCallback) -> Self
Create a new receiver. data_dir is the directory where the
.partial file is written (same convention as the in-cluster
snapshot receiver — <data_dir>/recv_snapshots/<database_id>.partial).
Sourcepub async fn handle_chunk(
&self,
envelope: CrossClusterSnapshotEnvelope,
) -> Result<BootstrapChunkOutcome, MirrorError>
pub async fn handle_chunk( &self, envelope: CrossClusterSnapshotEnvelope, ) -> Result<BootstrapChunkOutcome, MirrorError>
Process one incoming CrossClusterSnapshotEnvelope.
Offset 0 always (re)starts a fresh receive, discarding any existing partial file. This implements the resume semantic: on mirror restart the source will resend from offset 0.
Sourcepub async fn abort(&self)
pub async fn abort(&self)
Abort any in-progress bootstrap, removing the partial file if present.
Called when the link disconnects mid-bootstrap so the next reconnect starts fresh. If the lock is poisoned this still tries to clear what it can (this path is best-effort cleanup, not correctness-critical).
Auto Trait Implementations§
impl !Freeze for MirrorBootstrapReceiver
impl !RefUnwindSafe for MirrorBootstrapReceiver
impl Send for MirrorBootstrapReceiver
impl Sync for MirrorBootstrapReceiver
impl Unpin for MirrorBootstrapReceiver
impl UnsafeUnpin for MirrorBootstrapReceiver
impl !UnwindSafe for MirrorBootstrapReceiver
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> 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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.