Skip to main content

jagua_rs/probs/bpp/io/
export.rs

1use crate::Instant;
2use crate::io::export::export_layout_snapshot;
3use crate::probs::bpp::entities::{BPInstance, BPSolution};
4use crate::probs::bpp::io::ext_repr::ExtBPSolution;
5
6/// Exports a solution out of the library
7#[must_use]
8pub fn export(instance: &BPInstance, solution: &BPSolution, epoch: Instant) -> ExtBPSolution {
9    ExtBPSolution {
10        cost: solution.cost(instance),
11        layouts: solution
12            .layout_snapshots
13            .iter()
14            .map(|(key, sl)| {
15                export_layout_snapshot(sl, instance.bins[solution.layout_bins[key]].external_id)
16            })
17            .collect(),
18        run_time_sec: solution.time_stamp.duration_since(epoch).as_secs(),
19        density: solution.density(),
20    }
21}