package fit
import (
"fmt"
"sort"
)
func ExamplePack() {
items := []Item{
&ExampleItem{data: "first item", size: 4},
&ExampleItem{data: "second item", size: 2},
&ExampleItem{data: "third item", size: 6},
&ExampleItem{data: "fourth item", size: 5},
}
// sort biggest items first
sort.Sort(sort.Reverse(ItemsBySize(items)))
// pack into bins selecting the best fitting bin
bins, err := Pack(Best, 10, items)
if err != nil {
fmt.Println(err)
return
}
for _, bin := range bins {
for _, item := range bin.Items() {
fmt.Println(item.(*ExampleItem).data)
}
}
//Output:
//third item
//first item
//fourth item
//second item
}