pub struct CaseBlock {
pub kind: &'static str,
pub case: Case,
pub deadlines: Vec<Deadline>,
pub blobs: Vec<Digest>,
pub hold: Option<LegalHold>,
pub erasure: Option<Erasure>,
}Expand description
One case, as an export line — the case layer’s whole account of one matter.
Emitted after the run blocks because the two halves answer different questions: the journal is what happened, the case is what it happened to. A restore of the journal alone rebuilds every index the journal owns and none of these rows, because case state is not derivable from records — which is exactly why the export has to carry it.
state travels as stored: sealed on a sealed plane. Exporting
plaintext would quietly undo erasure — see the module docs, which make the
same refusal for record payloads.
blobs carries digests, never bytes. Presence and integrity of the bytes
are a question about a live blob store, which an offline file cannot
answer and honestly reports as unchecked.
hold is always written, null for a matter nobody ordered preserved. A
restore that brought a held matter back without its hold would hand the
next retention pass a closed, old, unheld case to erase.
erasure is always written too, null for a matter nobody erased. A
restore that dropped it would bring back a case whose key is destroyed as
an ordinary closed one — reopenable, writable, and a drill finding.
Fields§
§kind: &'static strAlways "agentplane.export.case".
case: Case§deadlines: Vec<Deadline>§blobs: Vec<Digest>§hold: Option<LegalHold>The legal hold on this matter: instant, reason and operator.
erasure: Option<Erasure>The erasure record on this matter: instant, reason, and whether it completed.
Trait Implementations§
impl StructuralPartialEq for CaseBlock
Auto Trait Implementations§
impl Freeze for CaseBlock
impl RefUnwindSafe for CaseBlock
impl Send for CaseBlock
impl Sync for CaseBlock
impl Unpin for CaseBlock
impl UnsafeUnpin for CaseBlock
impl UnwindSafe for CaseBlock
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> 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