1#![feature(impl_trait_in_fn_trait_return)]
2#![feature(type_alias_impl_trait)]
3#![feature(trait_alias)]
4
5pub mod inbound;
6mod interface;
7pub mod io;
8mod outbound;
9pub mod types;
10
11pub use inbound::*;
12pub use interface::*;
13pub use outbound::*;
14use tokio_util::{sync::CancellationToken, task::TaskTracker};
15
16pub mod log;
17
18pub mod tcp;
19pub mod udp;
20
21#[cfg(test)]
22mod udp_tests;
23
24pub struct AppContext {
25 pub tasks: TaskTracker,
26 pub token: CancellationToken,
27}
28
29impl Default for AppContext {
30 fn default() -> Self {
31 Self {
32 tasks: TaskTracker::new(),
33 token: CancellationToken::new(),
34 }
35 }
36}