ooxml_core/lib.rs
1//! ooxml-core:OOXML 公共基座 crate。
2//!
3//! 本 crate 从 pptx-rs 提取**格式无关**的公共层,服务于 OOXML 三件套:
4//! - [`pptx-rs`](https://github.com/WenTao-Love/pptx-rs)(PowerPoint .pptx)
5//! - xlsx-rs(Excel .xlsx,Phase 2 规划)
6//! - docx-rs(Word .docx,Phase 3 规划)
7//!
8//! # 提供的能力
9//!
10//! - **OPC 打包层**([`opc`]):ZIP 容器读写、`[Content_Types].xml`、Part 关系链管理
11//! - **OOXML 公共类型**([`oxml`]):命名空间常量、XML writer/reader、SimpleTypes 枚举、
12//! DrawingML 颜色/形状属性/文本体/表格
13//! - **单位换算**([`units`]):EMU / Pt / Inches / Cm / RGBColor
14//! - **错误类型**([`error`]):统一的 `Error` 枚举 + `Result<T>` 别名
15//!
16//! # 设计原则
17//!
18//! 1. **格式无关**:不包含任何 PPTX/XLSX/DOCX 特有逻辑
19//! 2. **零 `unsafe`**:crate 级 `#![forbid(unsafe_code)]`
20//! 3. **MSRV 1.75+**:与消费者 crate 保持一致
21//!
22//! # 与 ECMA-376 的对应
23//!
24//! - OPC 层对应 ECMA-376 Part 2(Open Packaging Conventions)
25//! - DrawingML 类型对应 ECMA-376 Part 1 §20.1(DrawingML)
26//! - SimpleTypes 对应 ECMA-376 Part 1 §22(Schema)
27
28#![forbid(unsafe_code)]
29
30pub mod error;
31pub mod escape;
32pub mod opc;
33pub mod oxml;
34pub mod units;
35
36pub use error::{Error, Result};
37pub use escape::xml_escape;
38pub use units::*;