pub struct FileSnapshot {
pub path: String,
pub checksum: String,
pub size: u64,
pub content: Option<String>,
pub compressed_content: Option<String>,
pub exists: bool,
}Expand description
Snapshot of a file’s state at a point in time.
Fields§
§path: StringPath to the file
checksum: StringSHA-256 checksum of file contents
size: u64File size in bytes
content: Option<String>For small files (< 10KB by default), store full content
compressed_content: Option<String>Compressed content (base64-encoded gzip) for larger key files
exists: boolWhether the file existed
Implementations§
Source§impl FileSnapshot
impl FileSnapshot
Sourcepub fn new(path: &str, checksum: String, size: u64, exists: bool) -> Self
pub fn new(path: &str, checksum: String, size: u64, exists: bool) -> Self
Create a new file snapshot with the default content threshold (10KB).
This version does not capture file content (content and compressed_content will be None).
Use from_workspace to create a snapshot with content from a workspace.
Sourcepub fn from_workspace_default(
workspace: &dyn Workspace,
path: &str,
checksum: String,
size: u64,
exists: bool,
) -> Self
pub fn from_workspace_default( workspace: &dyn Workspace, path: &str, checksum: String, size: u64, exists: bool, ) -> Self
Create a file snapshot from a workspace using the default content threshold (10KB).
Files smaller than 10KB will have their content stored. Key files (PROMPT.md, PLAN.md, ISSUES.md, NOTES.md) may be compressed if they are between 10KB and 100KB.
Sourcepub fn from_workspace(
workspace: &dyn Workspace,
path: &str,
checksum: String,
size: u64,
exists: bool,
max_size: u64,
) -> Self
pub fn from_workspace( workspace: &dyn Workspace, path: &str, checksum: String, size: u64, exists: bool, max_size: u64, ) -> Self
Create a file snapshot from a workspace, optionally capturing content.
Files smaller than max_size bytes will have their content stored.
Key files (PROMPT.md, PLAN.md, ISSUES.md, NOTES.md) may be compressed if they
are between max_size and MAX_COMPRESS_SIZE.
Sourcepub fn get_content(&self) -> Option<String>
pub fn get_content(&self) -> Option<String>
Get the file content, decompressing if necessary.
Sourcepub fn verify_with_workspace(&self, workspace: &dyn Workspace) -> bool
pub fn verify_with_workspace(&self, workspace: &dyn Workspace) -> bool
Verify that the current file state matches this snapshot using a workspace.
Trait Implementations§
Source§impl Clone for FileSnapshot
impl Clone for FileSnapshot
Source§fn clone(&self) -> FileSnapshot
fn clone(&self) -> FileSnapshot
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FileSnapshot
impl Debug for FileSnapshot
Source§impl Default for FileSnapshot
impl Default for FileSnapshot
Source§fn default() -> FileSnapshot
fn default() -> FileSnapshot
Source§impl<'de> Deserialize<'de> for FileSnapshot
impl<'de> Deserialize<'de> for FileSnapshot
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>,
Source§impl PartialEq for FileSnapshot
impl PartialEq for FileSnapshot
Source§impl Serialize for FileSnapshot
impl Serialize for FileSnapshot
impl Eq for FileSnapshot
impl StructuralPartialEq for FileSnapshot
Auto Trait Implementations§
impl Freeze for FileSnapshot
impl RefUnwindSafe for FileSnapshot
impl Send for FileSnapshot
impl Sync for FileSnapshot
impl Unpin for FileSnapshot
impl UnwindSafe for FileSnapshot
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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