Skip to main content

trait_kit/kit/
mod.rs

1// Copyright (c) 2026 Kirky.X
2// SPDX-License-Identifier: MIT
3//! Kit — the capability and configuration management center.
4
5pub mod graph;
6#[allow(clippy::module_inception)]
7pub mod kit;
8pub(crate) mod typemap;
9
10#[cfg(feature = "async")]
11pub mod async_kit;
12#[cfg(feature = "async")]
13pub mod async_typemap;
14
15#[cfg(feature = "confers")]
16pub mod config;
17
18pub use graph::{DependencyGraph, GraphError, ModuleEntry};
19pub use kit::{Kit, Ready, Unbuilt};
20pub(crate) use typemap::TypeMap;
21
22#[cfg(feature = "scope")]
23pub mod scope;
24#[cfg(all(feature = "scope", feature = "async"))]
25pub use scope::AsyncScope;
26#[cfg(feature = "scope")]
27pub use scope::Scope;
28
29#[cfg(feature = "toggle")]
30pub mod toggle;
31
32#[cfg(feature = "shutdown")]
33pub mod shutdown;
34#[cfg(all(feature = "shutdown", feature = "async"))]
35pub use shutdown::AsyncShutdownCoordinator;
36#[cfg(feature = "shutdown")]
37pub use shutdown::{ShutdownCoordinator, ShutdownPhase, ShutdownPhaseResult, ShutdownResult};
38
39#[cfg(feature = "async")]
40pub use async_kit::{AsyncKit, Ready as AsyncReady, Unbuilt as AsyncUnbuilt};
41#[cfg(feature = "async")]
42pub use async_typemap::AsyncTypeMap;
43
44#[cfg(feature = "confers")]
45pub use config::Config;
46#[cfg(feature = "confers")]
47pub use config::Configurable;
48#[cfg(feature = "confers")]
49pub use config::ModuleConfig;
50#[cfg(feature = "confers")]
51pub use config::Validatable;
52#[cfg(feature = "confers")]
53pub use config::ValidationError;
54#[cfg(feature = "confers")]
55pub use config::interpolate_json_value;
56
57#[cfg(feature = "encryption")]
58pub use config::EncryptedBlob;
59#[cfg(feature = "encryption")]
60pub(crate) use config::XChaCha20Crypto;