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}