Skip to main content

Crate mingli_contract

Crate mingli_contract 

Source
Expand description

端口层:叶与编排之间的契约。

这里只有抽象——一片叶要长成什么样(CastingEngine)、一次排盘的输入是什么 (Query)、一片叶如何声明自己的确定性边界与流派(DetItem / SchoolItem)、 需求侧有哪几类问局(IntentSpec)。

依赖方向:叶实现这里的 trait,编排层消费这里的 trait,双方都不认识对方。 本 crate 除共享时刻 mingli_astro::Moment 外不依赖任何领域实现。

按关注点分四份:ports 两个 trait 本身、query 输入、declare 叶的自述、 intent 需求侧的问局分类。

Re-exports§

pub use declare::d;
pub use declare::s;
pub use declare::DetItem;
pub use declare::Determinism;
pub use declare::Family;
pub use declare::SchoolItem;
pub use intent::intents;
pub use intent::Intent;
pub use intent::IntentSpec;
pub use intent::IntentStatus;
pub use ports::effective_school_id;
pub use ports::Bearing;
pub use ports::CastingEngine;
pub use ports::LeafOutput;
pub use ports::Principal;
pub use ports::WordEngine;
pub use ports::WordQuery;
pub use query::effective_seed;
pub use query::AskTime;
pub use query::Gender;
pub use query::Query;
pub use query::QueryKind;
pub use query::Subject;
pub use validate::days_in_month;
pub use validate::validate_coords;
pub use validate::validate_instant;
pub use validate::validate_query;

Modules§

declare
一片叶对自己的声明:属于哪个计算家族、哪些地方算得准、有哪些流派。
intent
需求侧:有哪几类问局,各自要什么输入原子、出什么形态。
ports
两个端口本身。
query
一次排盘的输入:时刻与它周围那些可缺省的原子。
validate
Query 与出生时刻的取值域。

Structs§

Moment
时刻的共享天文/历法上下文:对一个出生/问事时刻,把所有「时间→天文量」的公共子计算 (儒略日、力学时、太阳视黄经、民用日序、农历)一次性算出并缓存。