go-github-com-bradenaw-juniper 0.15.3
Extensions to the Go standard library using generics
Juniper is a library of extensions to the Go standard library using generics, including containers, iterators, and streams.
container/treecontains aMapandSetthat keep elements in sorted order. They are implemented using a B-tree, which performs better than a binary search tree.container/dequecontains a double-ended queue implemented with a ring buffer.container/xheapcontains a min-heap similar to the standard library'scontainer/heapbut more ergonomic, along with aPriorityQueuethat allows setting priorities by key.container/xlistcontains a linked-list similar to the standard library'scontainer/list, but type-safe.xslicescontains some commonly-used slice operations, likeChunk,Reverse,Clear, andJoin.iteratorcontains an iterator interface used by the containers, along with functions to manipulate them, likeMap,While, andReduce.streamcontains a stream interface, which is an iterator that can fail. Useful for iterating over collections that require I/O. It has most of the same combinators asiterator, plus some extras likePipeandBatch.parallelcontains some shorthand for common uses of goroutines to process slices, iterators, and streams in parallel, likeparallel.MapStream.xsortcontains extensions to the standard library packagesort. Notably, it also has the definition forxsort.Less, which is how custom orderings can be defined for sorting and also for ordered collections like fromcontainer/tree.You can probably guess what's in the packages
xerrors,xmath,xmath/xrand,xsync, andxtime.
- Outputs:
out - Website: https://github.com/bradenaw/juniper
- Licenses: Expat
- Package source: gnu/packages/golang-build.scm
- Builds: See build status
- Issues: See known issues
Installation
Install go-github-com-bradenaw-juniper 0.15.3 as follows:
guix install go-github-com-bradenaw-juniper@0.15.3
Or install the latest version:
guix install go-github-com-bradenaw-juniper
You can also install packages in augmented, pure or containerized environments for development or simply to try them out without polluting your user profile. See the guix shell documentation for more information.