Expand description
§Shaum
A production-grade Rust library for Islamic fasting (Shaum) jurisprudence with high-precision astronomical calculations for Hilal visibility.
This crate is a facade that re-exports functionality from the shaum ecosystem.
§Modules
types: Core types (FastingStatus, GeoCoordinate, etc.)calendar: Hijri calendar conversionastronomy: Astronomical calculations (Sun/Moon position, visibility)rules: Jurisprudence rules engine (optional)network: Network capabilities (optional)
§Usage
use shaum::prelude::*;
use chrono::NaiveDate;
let date = NaiveDate::from_ymd_opt(2025, 6, 5).unwrap();
let analysis = shaum::analyze_date(date); // Result<FastingAnalysis, ShaumError>Modules§
Macros§
- shaum_
context - Declaratively creates a
RuleContext.
Structs§
- Daud
Iterator - Iterator for Daud fasting days.
- Daud
Schedule Builder - Builder for Daud fasting schedule.
- Default
Sunset Provider - Default sunset calculator using VSOP87 astronomy engine.
- Fasting
Analysis - Fasting analysis result.
- Fasting
Query - Fluent query builder for fasting dates.
- Fasting
Type - Extensible fasting type/reason.
- Fixed
Adjustment - Fixed day offset for all dates.
- GeoCoordinate
- Geographic coordinates (Latitude, Longitude) with optional Altitude.
- NoAdjustment
- No adjustment (use astronomical calculation).
- Prayer
Params - Prayer time calculation parameters.
- Rule
Context - Rule engine configuration.
- Visibility
Criteria - Configurable moon visibility criteria for hilal observation.
Enums§
- Daud
Strategy - Strategy for Daud fasting on Haram days.
- Fasting
Status - Fasting status (Hukum). Ordered by priority: Haram > Wajib > SunnahMuakkadah > Sunnah > Makruh > Mubah.
- Madhab
- Sunni schools of jurisprudence.
- Shaum
Error - Errors from shaum operations.
- Trace
Code - Machine-readable trace codes for rules.
Traits§
- Moon
Provider - Moon sighting adjustment provider.
- Query
Ext - Extension for query creation.
- Shaum
Date Ext - Extends
NaiveDatewith fasting analysis methods. - Sunset
Provider - Interface for calculating sunset time.
Functions§
- analyze
- Analyzes fasting status for a specific moment in time.
- analyze_
date - Analyzes date with default context. Returns Result for safe error handling.
- check
- Checks fasting status for a given date. Defaults to Noon UTC.
- generate_
daud_ schedule - Generates a list of Daud fasting days between start and end (inclusive).
- to_
hijri - Converts Gregorian to Hijri with adjustment.