GitHunt
NC

ncabatoff/go-seq

Sequence go values to allow sorting them

Package for ordering of Go values

GoDoc
Build Status
Coverage Status

This package is intended to allow ordering (most) values via reflection,
much like go-cmp allows comparing values for equality.

This is helpful when trying to write Less() methods for sorting structures.
Provided all the types in question are supported, you can simply define it
as follows:

import "github.com/ncabatoff/go-seq/seq"

type (
    MyType struct {
        a int
        b string
    }
    MyTypeSlice []MyType
)
func (m MyTypeSlice) Less(i, j int) bool { return seq.Compare(m[i], m[j]) < 0 }

Noteable unsupported types include the builtin complex type, channels,
functions, and maps with non-string keys. Pointers can be ordered if their
underlying types are orderable.

Install

go get -u github.com/ncabatoff/go-seq/seq

License

MIT - See LICENSE file

Languages

Go100.0%

Contributors

MIT License
Created August 2, 2018
Updated September 21, 2025