#[non_exhaustive]pub enum FunctionalType {
Episodic,
UserFact,
BehavioralRule,
ReasoningStrategy,
CrossSessionSummary,
GraphFact,
}Expand description
MemGuard-inspired functional-role classification of a memory source (spec 004-16, #6086).
Each variant names one of the memory sources composed during context assembly
(schedule_context_fetchers in zeph-context) — not a storage tier
(CompressionLevel) and not a routing backend (MemoryRoute). The two axes are
orthogonal: a zeph_conversations vector is Episodic-tier and the Episodic
functional type, while a Semantic-tier consolidated fact lives under the UserFact
functional type. Placed here (rather than in zeph-memory) because zeph-context — the
crate that gates fetchers by this type — deliberately has no zeph-memory dependency
(see the module doc above and issue #3665); zeph-memory re-exports this type at its
crate root for taxonomy discoverability.
#[non_exhaustive]: additional functional sources may be added later without a breaking
change; an unrecognised variant is always-composed until explicitly gated (never silently
dropped).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Episodic
Raw episodic conversation recall (fetch_semantic_recall → zeph_conversations).
UserFact
User preference/attribute facts (fetch_persona_facts → SQL persona_memory,
not the zeph_key_facts collection — that surface is out of scope, see spec 004-16 §4).
BehavioralRule
Past user corrections (fetch_corrections → zeph_corrections).
Safety-critical: this type is never gated out by type-aware composition — context
assembly always schedules fetch_corrections regardless of the active set.
ReasoningStrategy
Distilled ReasoningBank strategies (fetch_reasoning_strategies → reasoning_strategies).
CrossSessionSummary
Cross-session summaries (fetch_summaries / fetch_cross_session → zeph_session_summaries).
GraphFact
Knowledge graph facts (fetch_graph_facts → zeph_graph_entities).
Implementations§
Trait Implementations§
Source§impl Clone for FunctionalType
impl Clone for FunctionalType
Source§fn clone(&self) -> FunctionalType
fn clone(&self) -> FunctionalType
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for FunctionalType
Source§impl Debug for FunctionalType
impl Debug for FunctionalType
Source§impl<'de> Deserialize<'de> for FunctionalType
impl<'de> Deserialize<'de> for FunctionalType
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<FunctionalType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<FunctionalType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Display for FunctionalType
impl Display for FunctionalType
impl Eq for FunctionalType
Source§impl FromStr for FunctionalType
impl FromStr for FunctionalType
Source§fn from_str(s: &str) -> Result<FunctionalType, <FunctionalType as FromStr>::Err>
fn from_str(s: &str) -> Result<FunctionalType, <FunctionalType as FromStr>::Err>
Strict parse: an unrecognised string is a hard error, never a silent fallback.
This is deliberate (spec 004-16 §4, critic finding S4): a config typo in
default_compose_types must fail config load, not silently widen to “all types”.
Source§impl Hash for FunctionalType
impl Hash for FunctionalType
Source§impl PartialEq for FunctionalType
impl PartialEq for FunctionalType
Source§impl Serialize for FunctionalType
impl Serialize for FunctionalType
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for FunctionalType
Auto Trait Implementations§
impl Freeze for FunctionalType
impl RefUnwindSafe for FunctionalType
impl Send for FunctionalType
impl Sync for FunctionalType
impl Unpin for FunctionalType
impl UnsafeUnpin for FunctionalType
impl UnwindSafe for FunctionalType
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,
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<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§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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request