Errutil: Update documentation for Go 1.19 (#55807)

This commit is contained in:
Emil Tullstedt
2022-10-07 12:47:43 +02:00
committed by GitHub
parent c2d3a31772
commit 22756913ba
6 changed files with 93 additions and 51 deletions

View File

@@ -17,20 +17,20 @@
// naturally to experienced and beginner Go developers alike and is
// compatible with standard library features such as the ones in
// the errors package. To achieve this, Grafana's errors are divided
// into the Base and Error types, where the Base contains static
// into the [Base] and [Error] types, where the Base contains static
// information about a category of errors that may occur within a
// service and Error contains the combination of static and dynamic
// information for a particular instance of an error.
//
// A Base would typically be provided as a package-level variable for a
// service using the NewBase constructor with a CoreStatus and a unique
// static message ID that identifies the general structure of the public
// service using the [NewBase] constructor with a [CoreStatus] and a
// unique static message ID that identifies the structure of the public
// message attached to the specific error.
//
// var errNotFound = errutil.NewBase(errutil.StatusNotFound, "service.not-found")
// var errNotFound = errutil.NewBase(errutil.StatusNotFound, "service.notFound")
//
// This Base can now be used to construct a regular Go error with the
// Base.Errorf method using the same structure as fmt.Errorf:
// [Base.Errorf] method using the same structure as [fmt.Errorf]:
//
// return errNotFound.Errorf("looked for thing with ID %d, but it wasn't there: %w", id, err)
//
@@ -39,11 +39,11 @@
// possible to override the message sent to the end user by using
// the WithPublicMessage functional option when creating a new Base
//
// var errNotFound = errutil.NewBase(errutil.StatusNotFound "service.not-found", WithPublicMessage("The thing is missing."))
// var errNotFound = errutil.NewBase(errutil.StatusNotFound "service.notFound", WithPublicMessage("The thing is missing."))
//
// If a dynamic message is needed, the Template type extends Base with a
// Go template using text/template from the standard library, refer to
// the documentation related to the Template type for usage examples.
// If a dynamic message is needed, the [Template] type extends Base with
// a Go template using [text/template], refer to the documentation
// related to the Template type for usage examples.
// It is also possible, but discouraged, to manually edit the fields of
// an Error.
package errutil