pub struct Profile { /* private fields */ }Expand description
A resolved tool profile — the set of families to register on the MCP server.
Implementations§
Source§impl Profile
impl Profile
Sourcepub fn core() -> Self
pub fn core() -> Self
core — 7 tools (store, recall, list, get, search, load_family, smart_load). The new v0.6.4 default; v0.7 B1
added memory_load_family as the always-on family loader and
v0.7 B2 added memory_smart_load as the intent-routed front
door. Registers exactly the Core family.
Design note (v0.6.4-002 hook): memory_capabilities is
always-on regardless of profile per RFC scenario S27. It is
NOT in this family list because the registration filter
(v0.6.4-002) injects it as a bootstrap tool outside the
profile-driven path. That keeps the “core profile = 7 tools at
v0.7.0” claim accurate (5 original + memory_load_family +
memory_smart_load) while still making the runtime-discovery
dance reachable. Cross-check with
Profile::core().expected_tool_count().
Sourcepub fn graph() -> Self
pub fn graph() -> Self
graph — core + graph. 18 tools (v0.7.0 I4 added memory_replay;
v0.7 H4 added memory_verify; v0.7 B1 added memory_load_family
to core; v0.7 B2 added memory_smart_load to core; v0.7 J7
added memory_find_paths).
Sourcepub fn admin() -> Self
pub fn admin() -> Self
admin — core + lifecycle + governance. 21 tools
(core 7 + lifecycle 6 + governance 8; v0.7 B1 added
memory_load_family to core; v0.7 B2 added
memory_smart_load to core; #1389 L4 added
memory_capture_turn to lifecycle, 20 → 21).
Sourcepub fn power() -> Self
pub fn power() -> Self
power — core + power. 30 tools (core 7 + power 23; v0.7 B1
added memory_load_family to core; v0.7 B2 added memory_smart_load
to core; v0.7 K7 added the two subscription-reliability tools
to Family::Power).
Sourcepub fn full() -> Self
pub fn full() -> Self
full — every family. The advertised entry count (callable
“memory tools” + the always-on memory_capabilities bootstrap)
is whatever Profile::full().expected_tool_count() returns —
that accessor, derived from the per-family tool_names slices,
is the canonical SSOT; no literal is restated here.
Sourcepub fn includes(&self, family: Family) -> bool
pub fn includes(&self, family: Family) -> bool
true if this profile would register tools from family.
Sourcepub fn expected_tool_count(&self) -> usize
pub fn expected_tool_count(&self) -> usize
Sum of expected tool counts. v0.6.4-002 will assert that the runtime registration matches.
Sourcepub fn loads(&self, tool_name: &str) -> bool
pub fn loads(&self, tool_name: &str) -> bool
true if a tool with this name is loaded under this profile.
Treats every name in ALWAYS_ON_TOOLS as loaded regardless of
the family map (per RFC S27 — memory_capabilities is the
bootstrap tool for runtime discovery).
Sourcepub fn parse(s: &str) -> Result<Self, ProfileParseError>
pub fn parse(s: &str) -> Result<Self, ProfileParseError>
Parse a profile name. Accepts the named profiles plus
comma-separated family lists. Empty or whitespace-only input
resolves to Profile::core. See module docs for full edge-case
matrix.
§Errors
ProfileParseError::UnknownFamilyif a comma-separated token is neither a known profile nor a known family.ProfileParseError::CaseMismatchif any token contains an uppercase letter.
Trait Implementations§
impl Eq for Profile
impl StructuralPartialEq for Profile
Auto Trait Implementations§
impl Freeze for Profile
impl RefUnwindSafe for Profile
impl Send for Profile
impl Sync for Profile
impl Unpin for Profile
impl UnsafeUnpin for Profile
impl UnwindSafe for Profile
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§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> ErasedDestructor for Twhere
T: 'static,
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