diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 6c8754b97c..2bea5579a2 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -2592,3 +2592,43 @@ generation features. This code generation is used to achieve: (description "A simple alternative to rcrowley's @command{go-metrics} that's a lot faster (and only does simple bandwidth metrics).") (license license:expat)))) + +(define-public go-github-com-davecgh-go-spew + (let ((commit "d8f796af33cc11cb798c1aaeb27a4ebc5099927d") + (revision "0")) + (package + (name "go-github-com-davecgh-go-spew") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/davecgh/go-spew.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19z27f306fpsrjdvkzd61w1bdazcdbczjyjck177g33iklinhpvx")))) + (build-system go-build-system) + (arguments + '(#:unpack-path "github.com/davecgh/go-spew" + #:import-path "github.com/davecgh/go-spew/spew")) + (home-page "https://github.com/davecgh/go-spew") + (synopsis "Deep pretty printer for Go data structures to aid in debugging") + (description "Package @command{spew} implements a deep pretty printer +for Go data structures to aid in debugging. + +A quick overview of the additional features spew provides over the built-in printing facilities for Go data types are as follows: + +@itemize +@item Pointers are dereferenced and followed. +@item Circular data structures are detected and handled properly. +@item Custom Stringer/error interfaces are optionally invoked, including on +unexported types. +@item Custom types which only implement the Stringer/error interfaces via a +pointer receiver are optionally invoked when passing non-pointer variables. +@item Byte arrays and slices are dumped like the hexdump -C command which +includes offsets, byte values in hex, and ASCII output (only when using Dump +style). +@end itemize\n") + (license license:isc))))