pub mod btree;
pub mod capacity_segment_tree;
pub mod linear;
pub mod segment_tree;
pub use btree::BTreeRemainingIndex;
pub use capacity_segment_tree::CapacitySegmentTree;
pub use linear::LinearScanIndex;
pub use segment_tree::SegmentTreeIndex;
pub trait PlacementIndex {
fn insert_bin(&mut self, bin_id: usize, remaining: usize);
fn update_bin(&mut self, bin_id: usize, old_remaining: usize, new_remaining: usize);
fn first_fit(&self, needed: usize) -> Option<usize>;
fn best_fit(&self, needed: usize) -> Option<usize>;
fn worst_fit(&self, needed: usize) -> Option<usize>;
}