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            .values()
14            .map(|sl| export_layout_snapshot(sl, instance))
15            .collect(),
16        run_time_sec: solution.time_stamp.duration_since(epoch).as_secs(),
17        density: solution.density(instance),
18    }
19}