123456789101112131415161718192021222324252627282930313233343536 |
- package docker
- import "sort"
- type imageSorter struct {
- images []APIImages
- by func(i1, i2 *APIImages) bool // Closure used in the Less method.
- }
- // Len is part of sort.Interface.
- func (s *imageSorter) Len() int {
- return len(s.images)
- }
- // Swap is part of sort.Interface.
- func (s *imageSorter) Swap(i, j int) {
- s.images[i], s.images[j] = s.images[j], s.images[i]
- }
- // Less is part of sort.Interface. It is implemented by calling the "by" closure in the sorter.
- func (s *imageSorter) Less(i, j int) bool {
- return s.by(&s.images[i], &s.images[j])
- }
- // Sort []ApiImages by most recent creation date and tag name.
- func sortImagesByCreationAndTag(images []APIImages) {
- creationAndTag := func(i1, i2 *APIImages) bool {
- return i1.Created > i2.Created || (i1.Created == i2.Created && i2.Tag > i1.Tag)
- }
- sorter := &imageSorter{
- images: images,
- by: creationAndTag}
- sort.Sort(sorter)
- }
|