#[non_exhaustive]pub enum SourceKind {
Profile,
Observation,
SelfReport,
ParticipantReport,
Document,
Registry,
Policy,
AgentInstruction,
ExternalAuthority,
PendingVerification,
LibrarianAssignment,
}Expand description
Kind of grounding source attached to a memory.
Eleven kinds, matching grounding-model.md § 3. #[non_exhaustive]
so additions do not break semver.
§Examples
use mimir_core::{Confidence, MemoryKindTag, SourceKind};
let bound = SourceKind::Profile.confidence_bound();
assert!(bound < Confidence::ONE);
assert!(SourceKind::Profile.admits(MemoryKindTag::Semantic));
assert!(!SourceKind::Profile.admits(MemoryKindTag::Procedural));Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Profile
User / entity-provided identity or attribute data.
Observation
Directly witnessed by an agent.
SelfReport
Subject reported the fact about themselves.
ParticipantReport
A participant in an event reported it.
Document
A cited document, URL, paper, or canonical spec.
Registry
An authoritative registry (package manifest, DNS, filesystem).
Policy
A deliberate act of policy-making by a rule-maker.
AgentInstruction
An instruction from the agent’s operator / owner.
ExternalAuthority
A trusted third-party service or API (not a static document).
PendingVerification
A transitional marker: the claim has not been primary-source verified yet.
LibrarianAssignment
A fact the librarian itself emitted (timestamps, symbol IDs).
Implementations§
Source§impl SourceKind
impl SourceKind
Sourcepub const fn confidence_bound(self) -> Confidence
pub const fn confidence_bound(self) -> Confidence
Default confidence upper bound for this source kind.
User-overridable via mimir.toml per confidence-decay.md § 4.
This method returns the shipped default only.
Sourcepub const fn admits(self, kind: MemoryKindTag) -> bool
pub const fn admits(self, kind: MemoryKindTag) -> bool
Whether this source kind is admissible for a given memory kind.
Matches the Admits column in grounding-model.md § 3.1 table.
Inferential memories do not use the source field (they use
derived_from + method), so SourceKind::admits(Inferential)
is never true.
Trait Implementations§
Source§impl Clone for SourceKind
impl Clone for SourceKind
Source§fn clone(&self) -> SourceKind
fn clone(&self) -> SourceKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SourceKind
impl Debug for SourceKind
Source§impl Hash for SourceKind
impl Hash for SourceKind
Source§impl PartialEq for SourceKind
impl PartialEq for SourceKind
impl Copy for SourceKind
impl Eq for SourceKind
impl StructuralPartialEq for SourceKind
Auto Trait Implementations§
impl Freeze for SourceKind
impl RefUnwindSafe for SourceKind
impl Send for SourceKind
impl Sync for SourceKind
impl Unpin for SourceKind
impl UnsafeUnpin for SourceKind
impl UnwindSafe for SourceKind
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<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.