Ecosyste.ms: Repos
An open API service providing repository metadata for many open source software ecosystems.
Package Usage: go: github.com/posener/order
Package order enables easier ordering and comparison tasks.
This package provides functionality to easily define and apply order on values. It works out of
the box for most primitive types and their pointer versions, and enable order of any object using
(three-way comparison) https://en.wikipedia.org/wiki/Three-way_comparison with a given
`func(T, T) int` function, or by implementing the generic interface: `func (T) Compare(T) int`.
Supported Tasks:
* [x] `Sort` / `SortStable` - sort a slice.
* [x] `Search` - binary search for a value in a slice.
* [x] `MinMax` - get indices of minimal and maximal values of a slice.
* [X] `Is` - get a comparable object for more readable code.
+ [x] `Select` - get the K'th greatest value of a slice.
* [x] `IsSorted` / `IsStrictSorted` - check if a slice is sorted.
Order between values can be more forgiving than strict comparison. This library allows sensible
type conversions. A type `U` can be used in order function of type `T` in the following cases:
* `U` is a pointer (or pointers chain) to a `T`.
* `T` is a pointer (or pointers chain) to a `U`.
* `T` and `U` are of the same kind.
* `T` and `U` are of the same number kind group (int?, uint?, float?, complex?) and `U`'s bits
number is less or equal to `T`'s bits number.
* `U` and `T` are assignable structs.
Using this library might be less type safe - because of the usage of interfaces API, and less
efficient - because of the use of reflection. On the other hand, this library reduce chances for
errors by providing a well tested code and more readable code. See below how some order tasks
can be translated to be used by this library.
A simple example that shows how to use the order library with different basic types.
A type may implement a `func (t T) Compare(other T) int` function. In this case it could be just
used with the order package functions.
An example of ordering struct with multiple fields with different priorities.
1 version
Latest release: about 4 years ago
1 dependent package
View more package details: https://packages.ecosyste.ms/registries/proxy.golang.org/packages/github.com/posener/order
View more repository details: https://repos.ecosyste.ms/hosts/GitHub/repositories/posener%2Forder
Dependent Repos 3
levikobi/ekuiper Fork of lf-edge/ekuiper
Lightweight data stream processing engine for IoT edge- v0.0.1 extensions/go.mod
- v0.0.1 extensions/go.sum
Size: 90.6 MB - Last synced: 10 months ago - Pushed: 10 months ago
jacky-xbb/ekuiper Fork of lf-edge/ekuiper
A lightweight IoT edge analytics software- v0.0.1 extensions/go.mod
- v0.0.1 extensions/go.sum
Size: 54.2 MB - Last synced: 9 months ago - Pushed: over 1 year ago
ngjaying/kuiper Fork of lf-edge/ekuiper
Lightweight IoT Rule Engine for Edge- v0.0.1 extensions/go.mod
- v0.0.1 extensions/go.sum
Size: 94.2 MB - Last synced: about 2 months ago - Pushed: about 2 months ago
superrxan/ekuiper Fork of lf-edge/ekuiper
A lightweight IoT edge analytics software- v0.0.1 extensions/go.mod
- v0.0.1 extensions/go.sum
Size: 90.9 MB - Last synced: 9 months ago - Pushed: 9 months ago
GuanchuShen/ekuiper Fork of lf-edge/ekuiper
Lightweight data stream processing engine for IoT edge- v0.0.1 extensions/go.mod
- v0.0.1 extensions/go.sum
Size: 90.5 MB - Last synced: 11 months ago - Pushed: 11 months ago
DesmondAssis/ekuiper Fork of lf-edge/ekuiper
Lightweight data stream processing engine for IoT edge- v0.0.1 extensions/go.mod
- v0.0.1 extensions/go.sum
Size: 90.5 MB - Last synced: 10 months ago - Pushed: 11 months ago
tkfu/intertube Fork of guregu/intertube
music storage locker- v0.0.1 go.mod
- v0.0.1 go.sum
Size: 144 KB - Last synced: about 1 month ago - Pushed: 12 months ago
fatelei/ekuiper Fork of lf-edge/ekuiper
Lightweight data stream processing engine for IoT edge- v0.0.1 extensions/go.mod
- v0.0.1 extensions/go.sum
Size: 90.7 MB - Last synced: about 2 months ago - Pushed: 10 months ago
Amovement/ekuiper Fork of lf-edge/ekuiper
A lightweight IoT edge analytics software- v0.0.1 extensions/go.mod
- v0.0.1 extensions/go.sum
Size: 35.4 MB - Last synced: 9 months ago - Pushed: over 1 year ago
Aroaming/ekuiper Fork of lf-edge/ekuiper
A lightweight IoT edge analytics software- v0.0.1 extensions/go.mod
- v0.0.1 extensions/go.sum
Size: 32.7 MB - Last synced: 9 months ago - Pushed: almost 2 years ago
chhuax/ekuiper Fork of lf-edge/ekuiper
Lightweight data stream processing engine for IoT edge- v0.0.1 extensions/go.mod
- v0.0.1 extensions/go.sum
Size: 91.9 MB - Last synced: 9 months ago - Pushed: 9 months ago
tfoldi/ekuiper Fork of lf-edge/ekuiper
Lightweight data stream processing engine for IoT edge- v0.0.1 extensions/go.mod
- v0.0.1 extensions/go.sum
Size: 91.9 MB - Last synced: about 2 months ago - Pushed: 8 months ago
guregu/intertube
music storage locker- v0.0.1 go.mod
- v0.0.1 go.sum
Size: 219 KB - Last synced: 26 days ago - Pushed: 26 days ago
lf-edge/ekuiper
Lightweight data stream processing engine for IoT edge- v0.0.1 extensions/go.mod
- v0.0.1 extensions/go.sum
- v0.0.1 go.mod
- v0.0.1 go.sum
Size: 94.5 MB - Last synced: about 1 month ago - Pushed: about 1 month ago