Documentation
//! 奇门遁甲 (Qimen Dunjia) Rust 库,基于 [`tyme4rs`] 历法计算。
//!
//! # 起局
//!
//! ```no_run
//! use qimen::{Auspicious, SolarTimeQimenExt};
//! use tyme4rs::tyme::solar::SolarTime;
//!
//! let solar_time = SolarTime::from_ymd_hms(2026, 1, 14, 18, 45, 0);
//! let qimen = solar_time.qimen();
//!
//! println!("节气: {}", qimen.term());
//! println!("局数: {}遁{}局", qimen.yin_yang(), qimen.ju());
//! println!("旬首: {}", qimen.xun_shou());
//! for pattern in qimen.patterns() {
//!     println!("格局: {} [{}] - {}", pattern.name(), pattern.auspice(), pattern.summary());
//! }
//! for shensha in qimen.shen_sha() {
//!     println!("神煞: {} [{}]", shensha.name(), shensha.auspice());
//! }
//! ```
//!
//! # 统一接口
//!
//! 所有领域实体 ([`Pattern`] / [`Hexagram`] / [`ShenSha`] / [`ShenShaKind`] / [`Terrain`])
//! 都实现 [`Auspicious`] trait,提供 `name()` / `summary()` / `auspice()` 三个方法。
//!
//! # 维度
//!
//! - **盘面**:三奇六仪、天盘、暗干、九星、八门、九神
//! - **格局**:[`Pattern`] — 二十四格局 (反吟/伏吟/入墓/落空亡/门迫/三奇得使/八遁/青龙返首/飞鸟跌穴/...)
//! - **神煞**:[`ShenSha`] — 驿马、桃花、华盖、天乙贵人、天德贵人、月德贵人、国印贵人、文昌、禄神、羊刃
//! - **五行**:[`Element`] / [`ElementRelation`] (含九星/八门/天干/地支/宫位的五行映射)
//! - **十神**:[`TenStar`] (复用 [`tyme4rs`] 的实现,以日柱天干为日主)
//! - **长生十二宫**:[`Terrain`] (复用 [`tyme4rs`],通过 [`Auspicious`] 接入)
//! - **六十四卦**:[`Hexagram`] — 门宫演卦,门为上卦,宫为下卦

#![warn(missing_docs)]

pub mod auspice;
pub mod compute;
pub mod element;
pub mod enums;
pub mod error;
pub mod hexagram;
pub mod palace;
pub mod pattern;
pub mod shensha;
pub mod terrain;

pub(crate) mod plate;

pub use tyme4rs::tyme::culture::Terrain;
pub use tyme4rs::tyme::culture::star::ten::TenStar;

pub use crate::auspice::Auspice;
pub use crate::auspice::Auspicious;
pub use crate::compute::Qimen;
pub use crate::compute::SolarTimeQimenExt;
pub use crate::element::Element;
pub use crate::element::ElementRelation;
pub use crate::enums::QimenChartType;
pub use crate::enums::QimenDoor;
pub use crate::enums::QimenGod;
pub use crate::enums::QimenMethod;
pub use crate::enums::QimenStar;
pub use crate::enums::QimenYuan;
pub use crate::error::QimenError;
pub use crate::error::Result;
pub use crate::hexagram::Hexagram;
pub use crate::hexagram::Trigram;
pub use crate::palace::PalaceRelation;
pub use crate::palace::QimenDutyDoor;
pub use crate::palace::QimenDutyStar;
pub use crate::palace::QimenHeavenStemPlacement;
pub use crate::palace::QimenOptions;
pub use crate::palace::QimenPalace;
pub use crate::pattern::Pattern;
pub use crate::shensha::ShenSha;
pub use crate::shensha::ShenShaKind;
pub use crate::shensha::ShenShaTarget;