1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
use crateHookContext;
/// Synchronous modules run hooks in registration order for each request.
///
/// Hook phases run exclusively across requests unless
/// `RouterOption::AllowConcurrentModules` is enabled. Concurrent phases may
/// invoke the same module simultaneously; modules own any synchronisation
/// needed by their state. Attachment still receives exclusive access.
/// If a hook panics, subsequent invocations skip that module. Invocations
/// already running may finish; other modules remain available.
/// Asynchronous modules run hooks in registration order for each request.
///
/// Hook phases run exclusively across requests unless
/// `RouterOption::AllowConcurrentModules` is enabled. Concurrent phases may
/// invoke the same module while an earlier invocation awaits work. Modules
/// own their state synchronisation; attachment still receives exclusive access.