pub struct BodyObservation {
pub id: String,
pub code: String,
pub fate: ObservationFate,
pub detail: Value,
}Expand description
One per-entity BODY OBSERVATION — what an entity’s stored body carries that its type does not declare (consistency-sweep 04/01).
Deliberately not an IntegrityFinding. A finding is a thing to fix,
and most of what this reports is nothing to fix: absorbing an undeclared
heading into the catch-all is the feature working as designed, and making
it a violation would fail every mem that uses the catch-all for the prose
the schema did not anticipate. The distinction the reader needs is between
content that was OBSERVED and content that was LOST, not between clean and
dirty, so observations travel on their own channel and no observation can
mark an entity unconformant.
What the conformance axis could see before this was a tautology: it linted
entity.sections.keys(), which came out of the parser and are declared by
construction. Every heading the file actually carried was invisible to it.
Fields§
§id: String§code: StringABSORBED_SECTION | UNDECLARED_METADATA_KEY | REPEATED_SECTION_HEADING
fate: ObservationFateWhether the content survives the next write. This is the whole point of
the channel: absorbed content round-trips, dropped content does not,
and before this the reader could not tell which case they were in.
detail: ValueTrait Implementations§
Source§impl Clone for BodyObservation
impl Clone for BodyObservation
Source§fn clone(&self) -> BodyObservation
fn clone(&self) -> BodyObservation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BodyObservation
impl Debug for BodyObservation
impl Eq for BodyObservation
Source§impl PartialEq for BodyObservation
impl PartialEq for BodyObservation
Source§impl Serialize for BodyObservation
impl Serialize for BodyObservation
impl StructuralPartialEq for BodyObservation
Auto Trait Implementations§
impl Freeze for BodyObservation
impl RefUnwindSafe for BodyObservation
impl Send for BodyObservation
impl Sync for BodyObservation
impl Unpin for BodyObservation
impl UnsafeUnpin for BodyObservation
impl UnwindSafe for BodyObservation
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<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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.impl<T> Fruit for T
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