ic_backup/view/restore_reference_release/mod.rs
1//! Product-qualified terminal intent for an exclusively in-process restore.
2
3use crate::model::artifacts::ArtifactChecksumRecord;
4
5/// Fresh complete terminal evidence supplied by the owning integration.
6///
7/// The provider must authenticate the original journal, settle all application and
8/// external-effect obligations, and establish that no external commands were ever
9/// dispatched. Absence of command sidecars is insufficient. Command-backed restores
10/// require their original qualified integration; this API cannot release them.
11#[derive(Debug)]
12pub struct TerminalRestoreEvidence {
13 authority: ArtifactChecksumRecord,
14}
15
16impl TerminalRestoreEvidence {
17 /// Declare complete qualification of an exclusively in-process restore.
18 #[must_use]
19 pub const fn for_in_process_restore(authority: ArtifactChecksumRecord) -> Self {
20 Self { authority }
21 }
22
23 /// Read original intent, independently compared with retained references.
24 #[must_use]
25 pub const fn authority(&self) -> &ArtifactChecksumRecord {
26 &self.authority
27 }
28}