[package]
edition = "2021"
rust-version = "1.70"
name = "solar-positioning"
version = "0.5.1"
authors = ["Klaus Brunner <klaus.brunner@gmail.com>"]
build = false
exclude = [
".github/",
"scripts/",
"tests/data/",
"benches/data/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-accuracy solar positioning algorithms (SPA and Grena3) for calculating sun position and sunrise/sunset/twilight times"
homepage = "https://github.com/klausbrunner/solarpositioning-rs"
documentation = "https://docs.rs/solar-positioning"
readme = "README.md"
keywords = [
"solar",
"sun",
"astronomy",
"spa",
"sunrise",
]
categories = [
"science",
"algorithms",
"mathematics",
]
license = "MIT"
repository = "https://github.com/klausbrunner/solarpositioning-rs"
[package.metadata.release]
allow-branch = ["main"]
pre-release-commit-message = "Release {{version}}"
[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
search = "## Unreleased"
replace = """
## Unreleased
## [{{version}}] - {{date}}"""
exactly = 1
[features]
chrono = ["dep:chrono"]
default = [
"std",
"chrono",
]
libm = ["dep:libm"]
std = []
unstable = []
[lib]
name = "solar_positioning"
path = "src/lib.rs"
[[example]]
name = "api_verification"
path = "examples/api_verification.rs"
[[example]]
name = "basic_usage"
path = "examples/basic_usage.rs"
required-features = [
"std",
"chrono",
]
[[example]]
name = "grena3_comparison"
path = "examples/grena3_comparison.rs"
required-features = [
"std",
"chrono",
]
[[example]]
name = "no_std_usage"
path = "examples/no_std_usage.rs"
[[example]]
name = "sunrise_sunset"
path = "examples/sunrise_sunset.rs"
required-features = [
"std",
"chrono",
]
[[example]]
name = "sunrise_without_chrono"
path = "examples/sunrise_without_chrono.rs"
[[test]]
name = "combined_pattern_optimization"
path = "tests/combined_pattern_optimization.rs"
[[test]]
name = "csv_reference_validation"
path = "tests/csv_reference_validation.rs"
[[test]]
name = "java_comparison"
path = "tests/java_comparison.rs"
[[test]]
name = "spa_accuracy"
path = "tests/spa_accuracy.rs"
[[test]]
name = "spa_reference_validation"
path = "tests/spa_reference_validation.rs"
[[test]]
name = "sunce_full_test"
path = "tests/sunce_full_test.rs"
[[test]]
name = "sunce_standard_case"
path = "tests/sunce_standard_case.rs"
[[test]]
name = "sunrise_midnight_boundary"
path = "tests/sunrise_midnight_boundary.rs"
[[test]]
name = "sunrise_non_chrono"
path = "tests/sunrise_non_chrono.rs"
[[test]]
name = "sunrise_reference_validation"
path = "tests/sunrise_reference_validation.rs"
[[test]]
name = "sunrise_regressions"
path = "tests/sunrise_regressions.rs"
[[test]]
name = "usno_reference_validation"
path = "tests/usno_reference_validation.rs"
[[bench]]
name = "performance_scenarios"
path = "benches/performance_scenarios.rs"
harness = false
[dependencies.chrono]
version = "0.4"
optional = true
default-features = false
[dependencies.libm]
version = "0.2"
optional = true
[dev-dependencies.chrono]
version = "0.4"
features = ["clock"]
[dev-dependencies.chrono-tz]
version = "0.10"
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.csv]
version = "1.4"
[profile.bench]
debug = 2
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"
overflow-checks = false