guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 15ff22eb81929cdcbce556747ca31c3b1f27ac9b
Author: Patrick Norton <[email protected]>
AuthorDate: Mon Nov 24 12:21:42 2025 -0500

    gnu: Add go-github-com-bradenaw-juniper.
    
    * gnu/packages/golang-build.scm (go-github-com-bradenaw-juniper): New
    variable.
    
    Change-Id: I0b7998e7ea2c7879aa681a7958bf1dc45728b449
    Signed-off-by: Sharlatan Hellseher <[email protected]>
---
 gnu/packages/golang-build.scm | 60 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/gnu/packages/golang-build.scm b/gnu/packages/golang-build.scm
index f2b91a0e03..82454a1486 100644
--- a/gnu/packages/golang-build.scm
+++ b/gnu/packages/golang-build.scm
@@ -88,6 +88,66 @@ expression evaluation, enabling different applications to 
more easily
 interoperate.")
     (license license:asl2.0)))
 
+(define-public go-github-com-bradenaw-juniper
+  (package
+    (name "go-github-com-bradenaw-juniper")
+    (version "0.15.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/bradenaw/juniper";)
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1dykj5fdxsml61hdibbsk7wnp9ckvrcdyzbmcq0z1di4lw8b8kzl"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      ;; "non-constant format string in call to (*testing.common).Logf"
+      #:test-flags
+      #~(list "-vet=off")
+      #:skip-build? #t
+      #:import-path "github.com/bradenaw/juniper"))
+    (propagated-inputs (list go-golang-org-x-sync go-golang-org-x-exp))
+    (home-page "https://github.com/bradenaw/juniper";)
+    (synopsis "Extensions to the Go standard library using generics")
+    (description
+     "Juniper is a library of extensions to the Go standard library using 
generics,
+including containers, iterators, and streams.
+
+@itemize
+@item @code{container/tree} contains a @code{Map} and @code{Set} that keep
+elements in sorted order. They are implemented using a B-tree, which performs
+better than a binary search tree.
+@item @code{container/deque} contains a double-ended queue implemented with a
+ring buffer.
+@item @code{container/xheap} contains a min-heap similar to the standard
+library's @code{container/heap} but more ergonomic, along with a
+@code{PriorityQueue} that allows setting priorities by key.
+@item @code{container/xlist} contains a linked-list similar to the standard
+library's @code{container/list}, but type-safe.
+@item @code{xslices} contains some commonly-used slice operations, like
+@code{Chunk}, @code{Reverse}, @code{Clear}, and @code{Join}.
+@item @code{iterator} contains an iterator interface used by the containers,
+along with functions to manipulate them, like @code{Map}, @code{While}, and
+@code{Reduce}.
+@item @code{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 @code{iterator}, plus some extras like @code{Pipe} and
+@code{Batch}.
+@item @code{parallel} contains some shorthand for common uses of goroutines to
+process slices, iterators, and streams in parallel, like
+@code{parallel.MapStream}.
+@item @code{xsort} contains extensions to the standard library package
+@code{sort}. Notably, it also has the definition for @code{xsort.Less}, which
+is how custom orderings can be defined for sorting and also for ordered
+collections like from @code{container/tree}.
+@item You can probably guess what's in the packages @code{xerrors},
+@code{xmath}, @code{xmath/xrand}, @code{xsync}, and @code{xtime}.
+@end itemize")
+    (license license:expat)))
+
 (define-public go-github-com-ebitengine-purego
   (package
     (name "go-github-com-ebitengine-purego")

Reply via email to