Expand description
Query 与出生时刻的取值域。
校验属于契约而不属于用例:它说的是「什么样的入参算数」,与谁来用这份入参无关。
从前它住在用例层,于是任何一扇只想排一张盘的门要么把用例层整个链进来,
要么不校验——后者会让同一个 2 月 31 日在服务端被拒、在浏览器里被历法换算悄悄
挪成 3 月 3 日,两扇门给出的不是同一个答案。搬到这里之后,拿得到 Query 的人
就一定拿得到校验。
用例层按原路径 re-export 这几个函数,对外签名一字未动。
Functions§
- days_
in_ month - 公历某年某月有几天。
month须已在 1–12 内。 - validate_
coords - 坐标的取值域。纬度不在
Birth上(只有占星那一路要它,走Query),故单独一条。 - validate_
instant - 一个时刻的取值域。两条交付路共用——HTTP 走
Birth::validate(承接层),wasm 走validate_query,两边落到的是同一段判断,不各写一份。 - validate_
query - 排盘入参的取值域。wasm 那扇门吃的是
crate::Query而非Birth, 两者字段不同、该收的东西一样,故各有一个入口、共用同一段判断。