Skip to main content

trait_kit/core/
mod.rs

1// Copyright (c) 2026 Kirky.X
2// SPDX-License-Identifier: MIT
3//! Core traits and types for module declaration.
4//!
5//! This module defines the foundational traits that all trait-kit modules
6//! must implement:
7//!
8//! - [`ModuleMeta`] — module identity and dependency declaration.
9//! - [`AutoBuilder`] — synchronous capability construction.
10//! - [`AsyncAutoBuilder`] — async counterpart (requires `async` feature).
11//!
12//! Optional sub-modules provide lifecycle hooks, health checks,
13//! observability callbacks, and interface-builder support, each gated
14//! behind its respective feature flag.
15
16pub mod macros;
17pub mod meta;
18
19#[cfg(feature = "health")]
20pub mod health;
21#[cfg(feature = "lifecycle")]
22pub mod lifecycle;
23#[cfg(feature = "observability")]
24pub mod observer;
25
26#[cfg(feature = "async")]
27pub use meta::AsyncAutoBuilder;
28pub(crate) use meta::BuildFn;
29pub use meta::{AutoBuilder, ModuleMeta};
30#[cfg(feature = "interface")]
31pub use meta::{Interface, InterfaceBuilder};
32
33#[cfg(all(feature = "lifecycle", feature = "async"))]
34pub use lifecycle::AsyncLifecycle;
35#[cfg(feature = "lifecycle")]
36pub use lifecycle::Lifecycle;
37
38#[cfg(all(feature = "health", feature = "async"))]
39pub use health::AsyncHealthCheck;
40#[cfg(feature = "health")]
41pub use health::{HealthCheck, HealthStatus};
42
43#[cfg(feature = "observability")]
44pub use observer::BuildObserver;