快速开始

Rust

安装 x-iztro crate,排出第一张盘,读懂枚举与翻译函数的分工。

适合:开发者

安装

cargo add x-iztro

或写进 Cargo.toml

[dependencies]
x-iztro = "0.2"

crate 名为 x-iztro,代码中的库名是 x_iztro。无 C 依赖,纯 Rust 构建。

排盘

use x_iztro::{by_solar, IztroError};
use x_iztro::data::types::*;

fn main() -> Result<(), IztroError> {
    let astrolabe = by_solar(
        "2000-8-16",        // 阳历生日
        2,                  // 时辰索引:寅时
        Gender::Female,     // 性别
        true,               // fix_leap:修正闰月
        Language::ZhCN,     // 盘面语言
        Config::default(),  // 分界点与流派,默认同 JS iztro
    )?;

    println!("阳历:{}", astrolabe.solar_date);
    println!("农历:{}", astrolabe.lunar_date);
    println!("干支:{}", astrolabe.chinese_date);
    println!("时辰:{} ({})", astrolabe.time, astrolabe.time_range);
    Ok(())
}
阳历:2000-8-16
农历:二〇〇〇年七月十七
干支:庚辰 甲申 丙午 庚寅
时辰:寅时 (03:00~05:00)

农历排盘用 by_lunarby_solarfix_leap 在这里换成 三态的 LeapMonthNotLeap 非闰月 / Leap 闰月 / LeapFixed 闰月且十五之后视作次月), 一个参数说清闰月怎么处理,不会把两个布尔写反:

by_lunar("2000-7-17", 2, Gender::Female, LeapMonth::NotLeap, Language::ZhCN, Config::default())?;

接下来

上面的例子只用到了排盘入口。完整的 API——十二宫定位、星耀判断、飞星、 运限、安星模块、数据表、翻译——在 Rust API 参考 一栏, 每个函数、类型与方法都有独立条目,附真实运行输出与边界说明。

本页目录