pub struct Packing {
pub bin_size: u32,
}
Fields§
§bin_size: u32
Implementations§
source§impl Packing
impl Packing
sourcepub fn new(bin_size: u32) -> Packing
pub fn new(bin_size: u32) -> Packing
Constructs a new Packing
instance
Requires a bin_size<u32>
which will be the max size that any bin
can fit.
Examples
use rpack::Packing;
let packing = Packing::new(5);
packing
will have a bin size of 5.
sourcepub fn pack_items(&mut self, packages: Vec<Item>) -> Vec<Bin>
pub fn pack_items(&mut self, packages: Vec<Item>) -> Vec<Bin>
Main entrypoint for packing bins.
Requires a Vec<Item>
representing the sizes of all the bins that will
be packed in the bins.
Examples
use rpack::{Bin, Packing, Item};
let items = vec![
Item{size: 2},
Item{size: 4},
Item{size: 4},
Item{size: 6},
Item{size: 1}
];
let expected = vec![
Bin{contents:vec![Item{size: 6}]},
Bin{contents:vec![Item{size: 4}, Item{size: 2}]},
Bin{contents:vec![Item{size: 4}, Item{size: 1}]},
];
let mut packing = Packing{bin_size: 6};
let packed_bins = packing.pack_items(items);
assert_eq!(packed_bins, expected);