unistore_core/
lib.rs

1//! UniStore 核心定义 Crate
2//!
3//! 职责:
4//! - 定义 `Capability` trait,所有能力模块的共同契约
5//! - 定义核心错误类型 `CapabilityError`
6//! - 定义能力元数据 `CapabilityInfo`
7//! - 提供能力注册与发现的基础抽象
8//!
9//! # 设计哲学
10//!
11//! - **乐高模块化**:此 crate 是"基础板",所有能力"积木"都安装在其上
12//! - **接口统一**:通过 trait 定义统一的能力契约
13//! - **解耦**:能力 crate 之间无直接依赖,仅依赖此核心
14//!
15//! # 使用方式
16//!
17//! 能力开发者:
18//! ```ignore
19//! use unistore_core::{Capability, CapabilityInfo};
20//!
21//! pub struct MyCapability { /* ... */ }
22//!
23//! impl Capability for MyCapability {
24//!     fn info(&self) -> CapabilityInfo {
25//!         CapabilityInfo::new("my-capability", env!("CARGO_PKG_VERSION"))
26//!     }
27//!
28//!     async fn start(&mut self) -> Result<(), CapabilityError> {
29//!         // 初始化逻辑
30//!         Ok(())
31//!     }
32//!
33//!     async fn stop(&mut self) -> Result<(), CapabilityError> {
34//!         // 清理逻辑
35//!         Ok(())
36//!     }
37//! }
38//! ```
39//!
40//! 应用开发者:
41//! ```ignore
42//! use unistore::UniRuntime;
43//! use unistore_serial::SerialCapability;
44//!
45//! let runtime = UniRuntime::builder()
46//!     .capability(SerialCapability::new())
47//!     .build()?;
48//! ```
49
50#![forbid(unsafe_code)]
51#![warn(missing_docs)]
52#![warn(clippy::all)]
53
54mod capability;
55mod error;
56mod info;
57mod registry;
58
59// ============================================================
60// 公开接口(对外暴露的所有类型)
61// ============================================================
62
63pub use capability::Capability;
64pub use error::CapabilityError;
65pub use info::CapabilityInfo;
66pub use registry::{CapabilityRegistry, CapabilityState};
67
68/// 预导入模块,包含常用类型
69pub mod prelude {
70    pub use crate::capability::Capability;
71    pub use crate::error::CapabilityError;
72    pub use crate::info::CapabilityInfo;
73}