Skip to main content

KnowledgeStatus

Struct KnowledgeStatus 

Source
pub struct KnowledgeStatus {
Show 15 fields pub present: bool, pub branch: String, pub last_derived: Option<LedgerMark>, pub last_closed: Option<LedgerMark>, pub closed_without_derivation: usize, pub candidates: usize, pub on_this_branch: usize, pub freshness: Freshness, pub age_minutes: Option<i64>, pub freshness_reason: String, pub judged: bool, pub stopped_writer: bool, pub knowledge_on_end: bool, pub knowledge_on_compact: bool, pub findings: Vec<String>,
}
Expand description

Whether the deriver is still writing, and what it last wrote.

The judgement is ADR 0052’s, applied to this writer: while episodes keep closing, a derivation follows every close. It compares episode ids, never line order or timestamps between the two events, because the close derives before it appends session.closed. It is the freshness half of the judgement only; whether the close path and the compaction adapter still call the deriver is read from the source by the shell validator, which is where the source is.

use majordomus_cli::capability::builtin::knowledge_base::KnowledgeStatus;
let fresh: KnowledgeStatus = serde_json::from_str(r#"{
  "present": false, "branch": "master", "closed_without_derivation": 0, "candidates": 0,
  "on_this_branch": 0, "freshness": "unknown", "freshness_reason": "no episode has closed here",
  "judged": false, "stopped_writer": false, "knowledge_on_end": true, "knowledge_on_compact": true
}"#).unwrap();
assert!(!fresh.present, "a fresh clone has no ledger, and that is not a fault");
assert!(!fresh.stopped_writer);

Fields§

§present: bool

Whether anything is here to judge: a ledger line or a candidate. False in a fresh clone.

§branch: String

The branch this checkout is on, or DETACHED.

§last_derived: Option<LedgerMark>

The newest knowledge.derived line, or None when the deriver has never run here.

§last_closed: Option<LedgerMark>

The newest session.closed line, or None when no episode has closed here.

§closed_without_derivation: usize

How many closed episodes in this ledger no knowledge.derived line names.

§candidates: usize

How many records carry status: candidate under the candidates class.

§on_this_branch: usize

How many of those came from an episode on this branch.

§freshness: Freshness

How old the newest closed episode is, judged against session.freshness.

§age_minutes: Option<i64>

That age in whole minutes, when it could be measured.

§freshness_reason: String

Why it was judged that way. Never empty.

§judged: bool

Whether the stopped-writer judgement was made at all. False, with the reason among findings, while no episode has closed here, while the switch is off, or while no derivation has yet run in this checkout.

§stopped_writer: bool

The finding: episodes close here and no derivation followed the newest one within the stale threshold. True only when judged.

§knowledge_on_end: bool

session.knowledge_on_end, as the policy declares it; absent means on.

§knowledge_on_compact: bool

session.knowledge_on_compact, likewise.

§findings: Vec<String>

What a reader should know: why the judgement was withheld, or what it found.

Trait Implementations§

Source§

impl Clone for KnowledgeStatus

Source§

fn clone(&self) -> KnowledgeStatus

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for KnowledgeStatus

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for KnowledgeStatus

Source§

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 Eq for KnowledgeStatus

Source§

impl JsonSchema for KnowledgeStatus

Source§

fn schema_name() -> Cow<'static, str>

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn inline_schema() -> bool

Whether JSON Schemas generated for this type should be included directly in parent schemas, rather than being re-used where possible using the $ref keyword. Read more
Source§

impl PartialEq for KnowledgeStatus

Source§

fn eq(&self, other: &KnowledgeStatus) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for KnowledgeStatus

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for KnowledgeStatus

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more