#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
mod builder;
mod climb_descent_performance;
mod fuel_planning;
mod leg_performance;
mod mb;
mod perf;
mod runway_analysis;
mod takeoff_landing_performance;
pub use builder::*;
pub use climb_descent_performance::{
ClimbDescentBand, ClimbDescentPerformance, ClimbDescentResult, CumulativeClimbDescentEntry,
};
pub use fuel_planning::*;
pub use leg_performance::LegPerformance;
pub use mb::MassAndBalance;
pub use perf::{Performance, PerformanceTable, PerformanceTableRow};
pub use runway_analysis::*;
pub use takeoff_landing_performance::*;
use crate::aircraft::Aircraft;
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, PartialEq)]
pub struct FlightPlanning {
aircraft: Option<Aircraft>,
fuel_planning: Option<FuelPlanning>,
mb: Option<MassAndBalance>,
is_balanced: Option<bool>,
takeoff_rwy_analysis: Option<RunwayAnalysis>,
landing_rwy_analysis: Option<RunwayAnalysis>,
}
impl FlightPlanning {
pub fn builder() -> FlightPlanningBuilder {
FlightPlanningBuilder::new()
}
pub fn fuel_planning(&self) -> Option<&FuelPlanning> {
self.fuel_planning.as_ref()
}
pub fn mb(&self) -> Option<&MassAndBalance> {
self.mb.as_ref()
}
pub fn is_balanced(&self) -> Option<bool> {
self.is_balanced
}
pub fn takeoff_rwy_analysis(&self) -> Option<&RunwayAnalysis> {
self.takeoff_rwy_analysis.as_ref()
}
pub fn landing_rwy_analysis(&self) -> Option<&RunwayAnalysis> {
self.landing_rwy_analysis.as_ref()
}
}