diff options
Diffstat (limited to 'oci/history.go')
-rw-r--r-- | oci/history.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/oci/history.go b/oci/history.go new file mode 100644 index 000000000..2ced41d61 --- /dev/null +++ b/oci/history.go @@ -0,0 +1,31 @@ +package oci + +import "sort" + +// History is a convenience type for storing a list of containers, +// sorted by creation date in descendant order. +type History []*Container + +// Len returns the number of containers in the history. +func (history *History) Len() int { + return len(*history) +} + +// Less compares two containers and returns true if the second one +// was created before the first one. +func (history *History) Less(i, j int) bool { + containers := *history + // FIXME: state access should be serialized + return containers[j].state.Created.Before(containers[i].state.Created) +} + +// Swap switches containers i and j positions in the history. +func (history *History) Swap(i, j int) { + containers := *history + containers[i], containers[j] = containers[j], containers[i] +} + +// sort orders the history by creation date in descendant order. +func (history *History) sort() { + sort.Sort(history) +} |