pub const HYDRA_VERSION: &str = env!("CARGO_PKG_VERSION");
pub use hydra_engine_wds::{
classify_simulation_runtime_millis,
estimate_simulation_runtime,
estimate_simulation_runtime_from_summary,
estimate_simulation_runtime_millis_from_summary,
FlowBalance,
FlowBalanceSummary,
HydSnapshot,
HydraulicError,
LinkProperty,
LinkQuantity,
LinkResult,
MassBalance,
NodeProperty,
NodeQuantity,
NodeResult,
PumpEnergy,
QualityError,
ResultRanges,
SessionError,
SimWarning,
Simulation,
WarningKind,
WritableSimulation,
HYDRA_HYDRAULICS_VERSION,
HYDRA_QUALITY_VERSION,
HYDRA_SIMULATION_VERSION,
};
pub use hydra_engine_wds::{
compute_demand_reliability_from_out, compute_demand_reliability_from_out_with_options,
compute_service_compliance_from_out, estimate_analysis_runtime_millis, AnalysisSelection,
DemandReliabilityNode, DemandReliabilityOptions, DemandReliabilityReport,
DemandReliabilitySummary, ServiceComplianceNode, ServiceComplianceReport,
ServiceComplianceSummary, ServiceComplianceThresholds, HYDRA_ANALYSIS_VERSION,
};
pub use hydra_engine_wds::{
ActionValue,
Curve,
CurveKind,
CurvePoint,
DemandCategory,
DemandModel,
FavadCoeffs,
FlowUnits,
HeadLossFormula,
Junction,
Link,
LinkBase,
LinkKind,
LinkState,
LinkStatus,
LogicOp,
MixModel,
Network,
Node,
NodeBase,
NodeKind,
NodeState,
Pattern,
Pipe,
Premise,
PremiseAttribute,
PremiseObject,
PremiseOperator,
Pump,
PumpCurveType,
QualityMode,
QualitySource,
ReportFieldOption,
ReportOptions,
ReportSelection,
ReportStatus,
Reservoir,
Rule,
RuleAction,
RuntimeEstimate,
SimpleControl,
SimulationOptions,
SourceType,
StatisticType,
Tank,
TriggerType,
ValidationError,
Valve,
ValveType,
WallOrder,
};
pub mod io {
pub use hydra_engine_wds::io::{
analysis_io, out_reader, out_writer, parse, rpt_writer, write_inp, ParseError,
};
}
pub use hydra_engine_wds::write_inp;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn facade_reexports_simulation_type() {
let _ = Simulation::create();
}
#[test]
fn facade_reexports_common_io_parse() {
let bytes = b"{\"invalid\":true}";
let err = io::parse(bytes).expect_err("invalid model bytes should fail parse");
assert!(matches!(err, io::ParseError::UnrecognisedFormat));
}
}