///|
fn main {
let event = @spongekit.rain_event("25mm campus retrofit storm", 25.0)
let catchments = [
@spongekit.catchment_from_surface("library roof", 120.0, @spongekit.Roof),
@spongekit.catchment_from_surface(
"south walkway",
80.0,
@spongekit.Pavement,
),
@spongekit.catchment_from_surface("quad lawn", 160.0, @spongekit.Lawn),
]
let spec = @spongekit.default_garden_spec()
match @spongekit.size_rain_garden(catchments, event, spec) {
Ok(plan) => {
println("status=" + plan.status.label())
println("recommended_area_m2=" + plan.recommended_area_m2.to_string())
println(plan.to_json())
match @spongekit.recommend_facility_mix(catchments, event, 36.0) {
Ok(train) => {
println("train_capture_ratio=" + train.capture_ratio.to_string())
match
@spongekit.estimate_treatment_train_cost(
train,
@spongekit.default_cost_profile(),
) {
Ok(cost) =>
println(
"train_capital_cost=" + cost.total_capital_cost.to_string(),
)
Err(error) => println("cost_error=" + error.label())
}
}
Err(error) => println("train_error=" + error.label())
}
match
@spongekit.compare_retrofit_scenarios(
catchments,
event,
spec,
@spongekit.default_stress_scenarios(36.0),
) {
Ok(comparison) => {
println("best_scenario=" + comparison.best_name)
println(
"average_scenario_score=" + comparison.average_score.to_string(),
)
}
Err(error) => println("scenario_error=" + error.label())
}
}
Err(error) => println("error=" + error.label())
}
}