|
- // Copyright (c) 2015, Emir Pasic. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
-
- // Package containers provides core interfaces and functions for data structures.
- //
- // Container is the base interface for all data structures to implement.
- //
- // Iterators provide stateful iterators.
- //
- // Enumerable provides Ruby inspired (each, select, map, find, any?, etc.) container functions.
- //
- // Serialization provides serializers (marshalers) and deserializers (unmarshalers).
- package containers
-
- import "github.com/emirpasic/gods/utils"
-
- // Container is base interface that all data structures implement.
- type Container interface {
- Empty() bool
- Size() int
- Clear()
- Values() []interface{}
- }
-
- // GetSortedValues returns sorted container's elements with respect to the passed comparator.
- // Does not effect the ordering of elements within the container.
- func GetSortedValues(container Container, comparator utils.Comparator) []interface{} {
- values := container.Values()
- if len(values) < 2 {
- return values
- }
- utils.Sort(values, comparator)
- return values
- }
|