weave-agentfs-diff · diff
Source declarations, signatures and documentation for diff.
Source: sigil/weave/local/agentfs-diff/src/diff.rs. SHA-256: 85189316d858f9e3f817333fcaeeebc97d467b158b83c28bbea2c89ed20c26e5.
This reference follows declared source modules, retains conditional attributes, and includes public declarations and implementation methods. Private-module re-exports and trait resolution require the compiler; this is a source reference, not a claim that every listed item is a root import. Function bodies and constant values are omitted.
diff::DiffKind
Kind of difference between files/directories
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum DiffKind {
/// File/directory added in target
Added,
/// File/directory modified
Modified,
/// File/directory deleted from source
Deleted,
/// File/directory moved/renamed
Moved,
/// Metadata changed only
MetadataOnly,
/// Content changed only
ContentOnly,
}Source line: 10.
diff::Diff
A single difference between two file systems
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Diff {
/// Path in source file system
pub source_path: Option<PathBuf>,
/// Path in target file system
pub target_path: Option<PathBuf>,
/// Kind of difference
pub kind: DiffKind,
/// Detailed diff information
pub details: DiffDetails,
/// Timestamp when diff was detected
pub timestamp: DateTime<Utc>
}Source line: 27.
diff::DiffDetails
Detailed information about a difference
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum DiffDetails {
/// File difference details
File(FileDiff),
/// Directory difference details
Directory(DirectoryDiff),
/// Symlink difference details
Symlink(SymlinkDiff),
}Source line: 46.
diff::FileDiff
File-specific diff information
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FileDiff {
/// Size in source
pub source_size: Option<u64>,
/// Size in target
pub target_size: Option<u64>,
/// Content hash in source
pub source_hash: Option<String>,
/// Content hash in target
pub target_hash: Option<String>,
/// Metadata differences
pub metadata_diff: Option<MetadataDiff>
}Source line: 57.
diff::DirectoryDiff
Directory-specific diff information
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DirectoryDiff {
/// Number of entries in source
pub source_entries: Option<usize>,
/// Number of entries in target
pub target_entries: Option<usize>,
/// Metadata differences
pub metadata_diff: Option<MetadataDiff>
}Source line: 76.
diff::SymlinkDiff
Symlink-specific diff information
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SymlinkDiff {
/// Target in source
pub source_target: Option<PathBuf>,
/// Target in target
pub target_target: Option<PathBuf>
}Source line: 89.
diff::MetadataDiff
Metadata differences
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MetadataDiff {
/// Permission differences
pub permissions_changed: bool,
/// Owner agent changed
pub owner_changed: bool,
/// Source owner identity
pub source_owner: Option<Identity>,
/// Target owner identity
pub target_owner: Option<Identity>,
/// Modified time changed
pub mtime_changed: bool,
/// Source modified time
pub source_mtime: Option<DateTime<Utc>>,
/// Target modified time
pub target_mtime: Option<DateTime<Utc>>
}Source line: 99.
diff::Diff::path
Get the primary path for this diff
pub fn path(&self) -> &PathBuf;Source line: 124.
diff::Diff::is_content_change
Check if this is a content change
pub fn is_content_change(&self) -> bool;Source line: 132.
diff::Diff::is_metadata_only
Check if this is a metadata-only change
pub fn is_metadata_only(&self) -> bool;Source line: 137.