rust-zmanim 0.2.1

Rust Zmanim Library
Documentation
use jiff::{civil, tz::TimeZone};
use rust_zmanim::{complex_zmanim_calendar::*, util::geolocation::GeoLocation};

fn tz(name: &str) -> TimeZone {
    TimeZone::get(name).unwrap()
}

fn lakewood() -> GeoLocation {
    GeoLocation {
        latitude: 40.0721087,
        longitude: -74.2400243,
        timezone: tz("America/New_York"),
        elevation: 15.0,
    }
}

fn samoa() -> GeoLocation {
    GeoLocation {
        latitude: -13.8599098,
        longitude: -171.8031745,
        timezone: tz("Pacific/Apia"),
        elevation: 1858.0,
    }
}

fn jerusalem() -> GeoLocation {
    GeoLocation {
        latitude: 31.7781161,
        longitude: 35.233804,
        timezone: tz("Asia/Jerusalem"),
        elevation: 740.0,
    }
}

fn los_angeles() -> GeoLocation {
    GeoLocation {
        latitude: 34.0201613,
        longitude: -118.6919095,
        timezone: tz("America/Los_Angeles"),
        elevation: 71.0,
    }
}

fn tokyo() -> GeoLocation {
    GeoLocation {
        latitude: 35.6733227,
        longitude: 139.6403486,
        timezone: tz("Asia/Tokyo"),
        elevation: 40.0,
    }
}

fn arctic_nunavut() -> GeoLocation {
    GeoLocation {
        latitude: 81.7449398,
        longitude: -64.7945858,
        timezone: tz("America/Toronto"),
        elevation: 127.0,
    }
}

fn fiji() -> GeoLocation {
    GeoLocation {
        latitude: -17.633056,
        longitude: 178.016667,
        timezone: tz("Pacific/Fiji"),
        elevation: 1324.0,
    }
}

fn honolulu() -> GeoLocation {
    GeoLocation {
        latitude: 21.466667,
        longitude: -157.966667,
        timezone: tz("America/Adak"),
        elevation: 10.0,
    }
}

fn niue() -> GeoLocation {
    GeoLocation {
        latitude: -19.053006,
        longitude: -169.859199,
        timezone: tz("Pacific/Niue"),
        elevation: 75.0,
    }
}

#[allow(dead_code)]
pub fn basic_locations() -> [GeoLocation; 6] {
    [
        lakewood(),
        jerusalem(),
        los_angeles(),
        tokyo(),
        arctic_nunavut(),
        samoa(),
    ]
}

#[allow(dead_code)]
pub fn more_locations() -> [GeoLocation; 9] {
    [
        lakewood(),
        jerusalem(),
        los_angeles(),
        tokyo(),
        arctic_nunavut(),
        samoa(),
        fiji(),
        honolulu(),
        niue(),
    ]
}

#[allow(dead_code)]
pub fn more_locations_czcs(use_elevation: bool) -> [ComplexZmanimCalendar; 9] {
    let elev = if use_elevation {
        UseElevation::All
    } else {
        UseElevation::No
    };

    more_locations().map(|loc| ComplexZmanimCalendar {
        geo_location: loc.clone(),
        date: civil::date(2017, 10, 17),
        use_elevation: elev,
    })
}