pub struct SnapshotListEntry {
pub id: String,
pub source: SnapshotSource,
pub description: String,
pub start_time: DateTime<Utc>,
pub end_time: DateTime<Utc>,
pub stats: SnapshotStats,
pub root_entry: Option<RootEntry>,
pub retention_reason: Vec<String>,
pub tags: BTreeMap<String, String>,
}Expand description
One entry from kopia snapshot list --json.
Unlike the create result, list entries carry a top-level stats block and a
retentionReason array (the kopia GFS classes keeping the snapshot alive):
use kopiur_kopia::SnapshotListEntry;
let json = r#"{
"id": "k1",
"source": {"host": "prod", "userName": "mydb", "path": "/data"},
"startTime": "2026-06-02T03:13:59Z",
"endTime": "2026-06-02T03:14:00Z",
"stats": {"totalSize": 4096, "fileCount": 12, "errorCount": 0},
"retentionReason": ["latest-1", "daily-1"]
}"#;
let entry: SnapshotListEntry = serde_json::from_str(json).unwrap();
assert_eq!(entry.id, "k1");
assert_eq!(entry.stats.total_size, 4096);
assert_eq!(entry.stats.file_count, 12);
assert_eq!(entry.retention_reason, vec!["latest-1", "daily-1"]);Fields§
§id: StringThe snapshot manifest id.
source: SnapshotSourceIdentity of the snapshot.
description: StringFree-form description.
start_time: DateTime<Utc>When the snapshot started.
end_time: DateTime<Utc>When the snapshot finished.
stats: SnapshotStatsPer-snapshot statistics.
root_entry: Option<RootEntry>Root directory entry.
retention_reason: Vec<String>Why this snapshot is being retained (kopia GFS reasons such as
latest-1, daily-1). Empty for snapshots outside any retention class.
Snapshot tags as stored on the manifest — keys carry kopia’s tag: prefix
(strip with user_tags). Empty for untagged snapshots and on kopia
versions that omit the field; an empty map is elided on re-serialization
(these types also ride the mover result wire).
Trait Implementations§
Source§impl Clone for SnapshotListEntry
impl Clone for SnapshotListEntry
Source§fn clone(&self) -> SnapshotListEntry
fn clone(&self) -> SnapshotListEntry
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SnapshotListEntry
impl Debug for SnapshotListEntry
Source§impl<'de> Deserialize<'de> for SnapshotListEntry
impl<'de> Deserialize<'de> for SnapshotListEntry
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for SnapshotListEntry
impl PartialEq for SnapshotListEntry
Source§fn eq(&self, other: &SnapshotListEntry) -> bool
fn eq(&self, other: &SnapshotListEntry) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for SnapshotListEntry
impl Serialize for SnapshotListEntry
impl Eq for SnapshotListEntry
impl StructuralPartialEq for SnapshotListEntry
Auto Trait Implementations§
impl Freeze for SnapshotListEntry
impl RefUnwindSafe for SnapshotListEntry
impl Send for SnapshotListEntry
impl Sync for SnapshotListEntry
impl Unpin for SnapshotListEntry
impl UnsafeUnpin for SnapshotListEntry
impl UnwindSafe for SnapshotListEntry
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
Mutably borrows from an owned value. Read more