Source: golang-github-hashicorp-errwrap Maintainer: Debian Go Packaging Team Uploaders: Tianon Gravi , Tim Potter , Anthony Fok Section: golang Testsuite: autopkgtest-pkg-go Priority: optional Build-Depends: debhelper-compat (= 13), dh-golang, golang-any Standards-Version: 4.5.1 Vcs-Browser: https://salsa.debian.org/go-team/packages/golang-github-hashicorp-errwrap Vcs-Git: https://salsa.debian.org/go-team/packages/golang-github-hashicorp-errwrap.git Homepage: https://github.com/hashicorp/errwrap Rules-Requires-Root: no XS-Go-Import-Path: github.com/hashicorp/errwrap Package: golang-github-hashicorp-errwrap-dev Architecture: all Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: foreign Description: Errwrap is a Go (golang) library for wrapping and querying errors errwrap is a package for Go that formalizes the pattern of wrapping errors and checking if an error contains another error. . There is a common pattern in Go of taking a returned error value and then wrapping it (such as with fmt.Errorf) before returning it. The problem with this pattern is that you completely lose the original error structure. . Arguably the correct approach is that you should make a custom structure implementing the error interface, and have the original error as a field on that structure, such as this example. This is a good approach, but you have to know the entire chain of possible rewrapping that happens, when you might just care about one. . errwrap formalizes this pattern (it doesn't matter what approach you use above) by giving a single interface for wrapping errors, checking if a specific error is wrapped, and extracting that error. . This package contains the source.