sword_core/
interceptor.rs1use crate::{Build, State, sword_error};
2
3pub trait Interceptor: Build {
10 fn register(state: &State) {
11 let interceptor = Self::build(state).unwrap_or_else(|err| {
12 sword_error! {
13 title: "Failed to build interceptor",
14 reason: err,
15 context: {
16 "source" => "Interceptor::register",
17 },
18 hints: ["Ensure interceptor dependencies are registered in the DI container"],
19 }
20 });
21
22 state.insert(interceptor);
23 }
24}
25
26pub struct InterceptorRegistrar {
27 pub register: fn(&State),
28}
29
30inventory::collect!(InterceptorRegistrar);