pub struct HookExecutionRecorder { /* private fields */ }Expand description
钩子执行顺序记录器(测试辅助工具)
在测试中通过 HookRegistry::register 注册记录器钩子,记录实际触发顺序,
然后用 HookExecutionRecorder::events 断言顺序符合预期。
§示例
ⓘ
use sz_rust_core::hooks::{HookRegistry, HookExecutionRecorder, HookEvent, INSERT_ORDER};
let registry = HookRegistry::new();
let recorder = Arc::new(HookExecutionRecorder::new());
for event in INSERT_ORDER.iter() {
let r = Arc::clone(&recorder);
registry.register(*event, Arc::new(move |_ctx| {
r.record(HookEvent::BeforeInsert); // 闭包捕获具体 event
Ok(())
}));
}Implementations§
Source§impl HookExecutionRecorder
impl HookExecutionRecorder
Sourcepub fn event_names(&self) -> Vec<&'static str>
pub fn event_names(&self) -> Vec<&'static str>
获取已记录的事件名称顺序快照(PHP 风格字符串)
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for HookExecutionRecorder
impl RefUnwindSafe for HookExecutionRecorder
impl Send for HookExecutionRecorder
impl Sync for HookExecutionRecorder
impl Unpin for HookExecutionRecorder
impl UnsafeUnpin for HookExecutionRecorder
impl UnwindSafe for HookExecutionRecorder
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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