pub struct LegalHold {
pub placed_at: Timestamp,
pub reason: String,
pub by: Operator,
}Expand description
An instruction from outside the plane that a matter must be preserved.
Orthogonal to CaseStatus, which answers where is this matter and moves
because runs did things. A hold answers may this be destroyed, decided by
somebody outside and usually before anybody knows which matters it covers.
A held matter still closes: one field for both would either end the hold when
the work does, or make closure unreachable and strand Deadline.
The reason and the Operator are both required, for the same reason every
erasure verb takes a reason: the runtime cannot check a preservation order,
so the row is worth exactly what it says. A hold nobody can account for is
indistinguishable from a sweep that quietly stopped working, and one nobody
is named on cannot be asked about. The name comes from the credential an
authenticator verified or from whoever opened the store — never from the
request body, which is the requester’s own word.
Fields§
§placed_at: TimestampWhen the hold was placed. Supplied by the caller, never read from a clock here, for the reason every other lifecycle instant in this crate is: a pass that read the clock itself could not be tested against a year of ageing holds.
reason: StringWhy this matter may not be destroyed. Free text, and load-bearing: it is what the person reviewing the hold listing months later has to act on.
by: OperatorWho placed it, and what established the name.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for LegalHold
impl<'de> Deserialize<'de> for LegalHold
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>,
impl Eq for LegalHold
impl StructuralPartialEq for LegalHold
Auto Trait Implementations§
impl Freeze for LegalHold
impl RefUnwindSafe for LegalHold
impl Send for LegalHold
impl Sync for LegalHold
impl Unpin for LegalHold
impl UnsafeUnpin for LegalHold
impl UnwindSafe for LegalHold
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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> 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