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: boolWhether anything is here to judge: a ledger line or a candidate. False in a fresh clone.
branch: StringThe 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: usizeHow many closed episodes in this ledger no knowledge.derived line names.
candidates: usizeHow many records carry status: candidate under the candidates class.
on_this_branch: usizeHow many of those came from an episode on this branch.
freshness: FreshnessHow 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: StringWhy it was judged that way. Never empty.
judged: boolWhether 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: boolThe finding: episodes close here and no derivation followed the newest one within
the stale threshold. True only when judged.
knowledge_on_end: boolsession.knowledge_on_end, as the policy declares it; absent means on.
knowledge_on_compact: boolsession.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
impl Clone for KnowledgeStatus
Source§fn clone(&self) -> KnowledgeStatus
fn clone(&self) -> KnowledgeStatus
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 KnowledgeStatus
impl Debug for KnowledgeStatus
Source§impl<'de> Deserialize<'de> for KnowledgeStatus
impl<'de> Deserialize<'de> for KnowledgeStatus
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 KnowledgeStatus
Source§impl JsonSchema for KnowledgeStatus
impl JsonSchema for KnowledgeStatus
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for KnowledgeStatus
impl PartialEq for KnowledgeStatus
Source§fn eq(&self, other: &KnowledgeStatus) -> bool
fn eq(&self, other: &KnowledgeStatus) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for KnowledgeStatus
impl Serialize for KnowledgeStatus
impl StructuralPartialEq for KnowledgeStatus
Auto Trait Implementations§
impl Freeze for KnowledgeStatus
impl RefUnwindSafe for KnowledgeStatus
impl Send for KnowledgeStatus
impl Sync for KnowledgeStatus
impl Unpin for KnowledgeStatus
impl UnsafeUnpin for KnowledgeStatus
impl UnwindSafe for KnowledgeStatus
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>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.