use bywind::{BakedWindMap, BenchmarkRoute, RouteEvolution, SegmentMetrics};
use swarmkit_sailing::{Boat, RouteBounds};
pub(crate) struct ReoptMsg {
pub(crate) iteration: usize,
pub(crate) new_times: Vec<f64>,
}
#[derive(serde::Deserialize, serde::Serialize, Default)]
#[serde(default)]
pub(crate) struct SearchOutputs {
pub(crate) iteration: usize,
#[serde(skip)]
pub(crate) route_evolution: Option<RouteEvolution>,
#[serde(skip)]
pub(crate) route_bounds: Option<RouteBounds>,
#[serde(skip)]
pub(crate) baked_wind_map: Option<BakedWindMap>,
#[serde(skip)]
pub(crate) boat: Option<Boat>,
#[serde(skip)]
pub(crate) segment_stats: Option<Vec<SegmentMetrics>>,
#[serde(skip)]
pub(crate) best_fitness: Option<f64>,
#[serde(skip)]
pub(crate) benchmark: Option<BenchmarkRoute>,
#[serde(skip)]
pub(crate) bake_duration: Option<std::time::Duration>,
#[serde(skip)]
pub(crate) search_duration: Option<std::time::Duration>,
#[serde(skip)]
pub(crate) last_search_seed: Option<u64>,
}