pub enum SourceMessage {
Directory {
src: PathBuf,
dst: PathBuf,
metadata: Metadata,
is_root: bool,
entry_count: usize,
file_count: usize,
keep_if_empty: bool,
},
Symlink {
src: PathBuf,
dst: PathBuf,
target: PathBuf,
metadata: Metadata,
is_root: bool,
},
DirStructureComplete {
has_root_item: bool,
},
FileSkipped {
src: PathBuf,
dst: PathBuf,
},
SymlinkSkipped {
src_dst: SrcDst,
is_root: bool,
},
}Expand description
Messages sent from source to destination on the control stream.
Variants§
Directory
Create directory, store metadata, and declare entry counts for completion tracking. Sent during directory tree traversal in depth-first order. Source pre-reads the directory children before sending, so counts are known at send time.
Fields
Symlink
Create symlink with metadata.
DirStructureComplete
Signal that all directories and symlinks have been sent.
Required before destination can send DestinationDone.
has_root_item indicates whether a root file/directory/symlink will be sent.
When false (dry-run or filtered root), destination can mark root as complete.
FileSkipped
Notify destination that a file failed to send. Counts as a processed entry for the parent directory’s completion tracking.
SymlinkSkipped
Notify destination that a symlink failed to read.
If is_root is true, this signals that root processing is complete (even if failed).
Non-root skipped symlinks count as a processed entry for the parent directory.
Trait Implementations§
Source§impl Debug for SourceMessage
impl Debug for SourceMessage
Source§impl<'de> Deserialize<'de> for SourceMessage
impl<'de> Deserialize<'de> for SourceMessage
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for SourceMessage
impl RefUnwindSafe for SourceMessage
impl Send for SourceMessage
impl Sync for SourceMessage
impl Unpin for SourceMessage
impl UnsafeUnpin for SourceMessage
impl UnwindSafe for SourceMessage
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> 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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request