pub struct HookRegistry { /* private fields */ }Expand description
A registry of hooks that dispatches events to all registered hooks in order.
Hooks are stored as Arc<dyn Hook> and dispatched sequentially. If any
hook returns HookAction::Skip or HookAction::Error from a PreToolCall
event, the first non-Continue action is returned and remaining hooks
are not called for that event.
Implementations§
Source§impl HookRegistry
impl HookRegistry
Sourcepub fn register(&mut self, hook: Arc<dyn Hook>)
pub fn register(&mut self, hook: Arc<dyn Hook>)
Register a hook. Hooks fire in registration order.
Sourcepub fn dispatch(&self, event: HookEvent<'_>) -> HookAction
pub fn dispatch(&self, event: HookEvent<'_>) -> HookAction
Dispatch an event to all registered hooks.
Returns the first non-Continue action, or Continue if all hooks
agree. For non-PreToolCall events, Skip and Error are converted
to Continue.
Trait Implementations§
Source§impl Clone for HookRegistry
impl Clone for HookRegistry
Source§fn clone(&self) -> HookRegistry
fn clone(&self) -> HookRegistry
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Default for HookRegistry
impl Default for HookRegistry
Source§fn default() -> HookRegistry
fn default() -> HookRegistry
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for HookRegistry
impl !UnwindSafe for HookRegistry
impl Freeze for HookRegistry
impl Send for HookRegistry
impl Sync for HookRegistry
impl Unpin for HookRegistry
impl UnsafeUnpin for HookRegistry
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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>
Converts
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>
Converts
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