Skip to main content

Module validate

Module validate 

Source
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, 两者字段不同、该收的东西一样,故各有一个入口、共用同一段判断。