Skip to main content

HookMetadata

Struct HookMetadata 

Source
pub struct HookMetadata {
    pub entity_type: Option<&'static str>,
    pub phase: HookPhase,
}
Expand description

Metadata describing what dispatch context a hook name belongs to. See module docs.

Fields§

§entity_type: Option<&'static str>

Entity type the hook applies to ("tool", "llm", "prompt", "resource"). None means “applies regardless of entity_type” — used for hooks that don’t tie to MCP’s entity-type taxonomy.

§phase: HookPhase

Lifecycle phase the hook occupies.

Implementations§

Source§

impl HookMetadata

Source

pub const fn unknown() -> Self

Default — entity_type: None, phase: Unphased. Used as the fallback for hook names not in the registry. The matches function treats Unphased as “matches any phase,” so unknown hooks dispatch on the first registered entry.

Source

pub fn matches( &self, request_entity_type: Option<&str>, requested_phase: HookPhase, ) -> bool

Whether this hook’s metadata matches a dispatch context.

Matching rules:

  • entity_type: a hook tied to a specific entity_type (Some("tool")) matches only contexts with that entity type. A hook with entity_type: None matches any context. A request without an entity_type (None) matches any hook — the dispatcher hasn’t specified what entity is in play, so we can’t filter on it.
  • phase: exact match between hook’s phase and the requested phase, EXCEPT Unphased is a wildcard from either side (lets custom / unregistered hooks dispatch without phase rules).

Trait Implementations§

Source§

impl Clone for HookMetadata

Source§

fn clone(&self) -> HookMetadata

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 Copy for HookMetadata

Source§

impl Debug for HookMetadata

Source§

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

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

impl Eq for HookMetadata

Source§

impl PartialEq for HookMetadata

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for HookMetadata

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
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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

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.

Source§

impl<T> Instrument for T

Source§

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

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

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.

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.
Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

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