Source: golang-github-bradenaw-juniper Section: golang Priority: optional Maintainer: Debian Go Packaging Team Uploaders: Maytham Alsudany Rules-Requires-Root: no Build-Depends: debhelper-compat (= 13), dh-golang, golang-any, golang-golang-x-exp-dev, golang-golang-x-sync-dev, Testsuite: autopkgtest-pkg-go Standards-Version: 4.6.2 Vcs-Browser: https://salsa.debian.org/go-team/packages/golang-github-bradenaw-juniper Vcs-Git: https://salsa.debian.org/go-team/packages/golang-github-bradenaw-juniper.git Homepage: https://github.com/bradenaw/juniper XS-Go-Import-Path: github.com/bradenaw/juniper Package: golang-github-bradenaw-juniper-dev Architecture: all Multi-Arch: foreign Depends: golang-golang-x-exp-dev, golang-golang-x-sync-dev, ${misc:Depends}, Description: extension to the Go standard library (library) Juniper is a library of extensions to the Go standard library using generics, including containers, iterators, and streams. . - `container/tree` contains a `Map` and `Set` that keep elements in sorted order. They are implemented using a B-tree, which performs better than a binary search tree. - `container/deque` contains a double-ended queue implemented with a ring buffer. - `container/xheap` contains a min-heap similar to the standard library's `container/heap` but more ergonomic, along with a `PriorityQueue` that allows setting priorities by key. - `container/xlist` contains a linked-list similar to the standard library's `container/list`, but type-safe. - `xslices` contains some commonly-used slice operations, like `Chunk`, `Reverse`, `Clear`, and `Join`. - `iterator` contains an iterator interface used by the containers, along with functions to manipulate them, like `Map`, `While`, and `Reduce`. - `stream` contains 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 as `iterator`, plus some extras like `Pipe` and `Batch`. - `parallel` contains some shorthand for common uses of goroutines to process slices, iterators, and streams in parallel, like `parallel.MapStream`. - `xsort` contains extensions to the standard library package `sort`. Notably, it also has the definition for `xsort.Less`, which is how custom orderings can be defined for sorting and also for ordered collections like from `container/tree`. - You can probably guess what's in the packages `xerrors`, `xmath`, `xmath/xrand`, `xsync`, and `xtime`. . Packages that overlap directly with a standard library package are named the same but with an `x` prefix for "extensions", e.g. `sort` and `xsort`. . See the docs at https://pkg.go.dev/github.com/bradenaw/juniper for more.