elif_core/
lib.rs

1pub mod bootstrap;
2pub mod config;
3pub mod container;
4pub mod errors;
5pub mod examples;
6pub mod foundation;
7pub mod modules;
8pub mod providers;
9pub mod specs;
10
11// Re-export key types for convenience (specific exports to avoid ambiguity)
12pub use bootstrap::{
13    AutoConfigBuilder, ConfigError as BootstrapConfigError, ConfigurationRule, ContainerAutoConfig, ProviderConfigurator,
14    ValidationReport as BootstrapValidationReport,
15};
16pub use errors::{ApiError, ApiErrorResponse, CoreError, ErrorDefinition};
17pub use foundation::{
18    Finalizable, FrameworkComponent, Initializable, LifecycleManager, LifecycleState,
19};
20// New IoC container exports (recommended for new projects)
21pub use container::{IocContainer, IocContainerBuilder, ServiceBinder, ServiceStatistics};
22// Legacy exports (deprecated - use IocContainer instead)
23#[deprecated(since = "0.6.0", note = "Use IocContainer instead")]
24pub use container::{Container, ContainerBuilder};
25// Still active exports
26pub use config::validation::ConfigError;
27pub use config::{AppConfig, AppConfigTrait, ConfigSource, Environment};
28pub use container::{ServiceRegistry, ServiceScope};
29pub use modules::{BaseModule, Module, ModuleError, ModuleLoader, ModuleRegistry};
30pub use providers::{ProviderLifecycleManager, ProviderRegistry, ServiceProvider};
31pub use specs::{ApiSpec, OperationSpec, ResourceSpec, StorageSpec};
32
33// Legacy re-exports for backward compatibility
34pub use errors::CoreError as ElifError;
35
36/// Version information
37pub const VERSION: &str = env!("CARGO_PKG_VERSION");
38
39/// Framework information
40pub const FRAMEWORK_NAME: &str = "elif.rs";
41
42/// Get framework version
43pub fn version() -> &'static str {
44    VERSION
45}
46
47/// Get framework name
48pub fn name() -> &'static str {
49    FRAMEWORK_NAME
50}