Guides
Document errors
Add a table of the errors of a type: each error, the functions that return it, and its meaning.
v2/machine/machine.go
var (
// ErrBusy is returned by Start while the Lamp is on.
ErrBusy = errors.New("machine: busy")
// ErrOff is returned by Stop while the Lamp is off.
ErrOff = errors.New("machine: off")
)// NewLamp returns a Lamp. It returns a *docgen.ConfigError for a Tries
// above MaxTries.
func NewLamp(cfg Config) (*Lamp, error) {
if cfg.Tries > MaxTries {
return nil, &docgen.ConfigError{Field: "Tries"}
}
l := &Lamp{wait: cfg.Wait, tries: cfg.Tries}
if l.wait == 0 {
l.wait = DefaultWait
}
if cfg.Tries == 0 {
l.tries = 1
}
return l, nil
}// Start turns the Lamp on. It returns ErrBusy while the Lamp is on.
func (l *Lamp) Start(now time.Duration) error {
if l.state == LampOn {
return ErrBusy
}
if l.state == LampOff {
l.state, l.until = LampOn, now+l.wait
}
return nil
}// Stop turns the Lamp off. It returns ErrOff while the Lamp is off.
func (l *Lamp) Stop() error {
if l.state != LampOn {
return ErrOff
}
l.off()
return nil
}v2/doc.go
// Package docgen is the fixture root package of the docgen tests.
package docgen
// ConfigError is the error of a constructor for a field with a value out
// of range.
type ConfigError struct{ Field string }
func (e *ConfigError) Error() string { return "bad " + e.Field }docs/machines/guide-errors.md
Before
# Errors
<!-- docgen:errors pkg=machine type=Lamp -->
<!-- /docgen:errors -->
After
# Errors
<!-- docgen:errors pkg=machine type=Lamp -->
| Error | Returned by | Meaning |
|---|---|---|
| [`docgen.ConfigError`](https://pkg.go.dev/github.com/USA-RedDragon/docgen/v2#ConfigError) | `NewLamp` | ConfigError is the error of a constructor for a field with a value out of range. |
| [`machine.ErrBusy`](https://pkg.go.dev/github.com/USA-RedDragon/docgen/v2/machine#ErrBusy) | `Lamp.Start` | ErrBusy is returned by Start while the Lamp is on. |
| [`machine.ErrOff`](https://pkg.go.dev/github.com/USA-RedDragon/docgen/v2/machine#ErrOff) | `Lamp.Stop` | ErrOff is returned by Stop while the Lamp is off. |
<!-- /docgen:errors -->
Preview
Errors
| Error | Returned by | Meaning |
|---|---|---|
docgen.ConfigError |
NewLamp |
ConfigError is the error of a constructor for a field with a value out of range. |
machine.ErrBusy |
Lamp.Start |
ErrBusy is returned by Start while the Lamp is on. |
machine.ErrOff |
Lamp.Stop |
ErrOff is returned by Stop while the Lamp is off. |
Name each error in the doc comment of the function that returns it. The table reads those doc comments, and a name that does not resolve adds no row.
For details, see docgen:errors.
Source: docs/guides/errors.md