Crate shaum

Crate shaum 

Source
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 conversion
  • astronomy: 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§

astronomy
calendar
extension
prelude
Re-exports for convenience.
query
rules
types

Macros§

shaum_context
Declaratively creates a RuleContext.

Structs§

DaudIterator
Iterator for Daud fasting days.
DaudScheduleBuilder
Builder for Daud fasting schedule.
DefaultSunsetProvider
Default sunset calculator using VSOP87 astronomy engine.
FastingAnalysis
Fasting analysis result.
FastingQuery
Fluent query builder for fasting dates.
FastingType
Extensible fasting type/reason.
FixedAdjustment
Fixed day offset for all dates.
GeoCoordinate
Geographic coordinates (Latitude, Longitude) with optional Altitude.
NoAdjustment
No adjustment (use astronomical calculation).
PrayerParams
Prayer time calculation parameters.
RuleContext
Rule engine configuration.
VisibilityCriteria
Configurable moon visibility criteria for hilal observation.

Enums§

DaudStrategy
Strategy for Daud fasting on Haram days.
FastingStatus
Fasting status (Hukum). Ordered by priority: Haram > Wajib > SunnahMuakkadah > Sunnah > Makruh > Mubah.
Madhab
Sunni schools of jurisprudence.
ShaumError
Errors from shaum operations.
TraceCode
Machine-readable trace codes for rules.

Traits§

MoonProvider
Moon sighting adjustment provider.
QueryExt
Extension for query creation.
ShaumDateExt
Extends NaiveDate with fasting analysis methods.
SunsetProvider
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.