Thanks to visit codestin.com
Credit goes to docs.rs

Crate zakat

Crate zakat 

Source
Expand description

§Zakat Library - Facade Crate

This crate re-exports all functionality from the zakat workspace crates for backward compatibility and convenience.

§Workspace Crates

  • zakat_core - Core types, traits, and calculators
  • zakat_i18n - Internationalization and localization (feature: i18n)
  • [zakat_ledger] - Event sourcing and Hawl tracking (feature: ledger)
  • zakat_providers - Live price fetching (feature: providers)
  • [zakat_sqlite] - SQLite persistence (feature: sqlite)

§Quick Start

use zakat::prelude::*;

let gold = PreciousMetals::gold(100.0)?;
let config = ZakatConfig::default().with_gold_price(65.0)?;
let result = gold.calculate_zakat(&config)?;
println!("Zakat due: {}", result.zakat_due);

Modules§

assets
Asset Wrapper Types
config
Zakat Configuration
debt
Debt & Receivables Types (Dayn)
distribution
Zakat Distribution (Haddul Kifayah)
fitrah
Zakat Fitrah Calculator
hawl
Hawl (Lunar Year) Tracker
i18n
inputs
maal
macros
Declarative macros for reducing boilerplate in Zakat asset definitions.
madhab
Fiqh Compliance: Madhab Strategy Pattern
math
partnership
Fiqh Compliance: Joint Venture & Mixture of Assets (Khultat)
portfolio
Fiqh Compliance: Portfolio Aggregation
prelude
Prelude module for zakat-core
pricing
traits
types
utils
validation
Validation utilities for Zakat assets.

Macros§

zakat_asset
Macro for generating Zakat asset structs with common fields and methods.
zakat_ffi_export
Macro for exporting Zakat assets to FFI (Python, WASM, etc.)
zakat_impl_py_view
zakat_pymap_enum

Structs§

CachedPriceProvider
A decorator that caches prices for a specified duration.
LocalizedInput
A string input with an explicit locale for unambiguous parsing.
Prices
Represents current market prices for metals used in Zakat calculations.
StaticPriceProvider
A static price provider for testing and development.
Translator
Translator for multi-locale message translation using Fluent.
ZakatConfig
Global configuration for Zakat prices.
ZakatDetails
Represents the detailed breakdown of the Zakat calculation.
ZakatExplanation
Structured representation of a Zakat calculation for API consumers.
ZakatPortfolio
ZakatRules
Rules that govern Zakat calculations for a specific Madhab. Contains Nisab standard, jewelry exemption policy, and Zakat rates.

Enums§

InputLocale
Locale specification for unambiguous numeric input parsing.
Madhab
Islamic school of thought (Madhab) for Zakat calculation. Each Madhab has different rules regarding Nisab standards and jewelry exemptions.
NisabStandard
Nisab standard for calculating the Zakat threshold on monetary wealth.
PortfolioItem
A wrapper enum for all zakatable asset types. This enables serialization and uniform handling in a portfolio.
WealthType
Helper enum to categorize wealth types
ZakatError
ZakatLocale
Supported locales for the Zakat library.

Traits§

AsyncCalculateZakat
CalculateZakat
Trait to be implemented by all Zakat calculators.
CurrencyFormatter
Trait for formatting currencies.
IntoZakatDecimal
Trait for converting various types into Decimal for Zakat calculations.
PriceProvider
Trait for fetching current metal prices.
ZakatConfigArgument
Helper trait to allow flexible config arguments.
ZakatStrategy
Trait for providing Zakat calculation rules.

Functions§

default_translator
Creates a default Translator instance.
with_locale
Creates a LocalizedInput for explicit locale-aware parsing.