dwrap

package module
v0.0.0-...-a447e2d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 29, 2023 License: MIT Imports: 7 Imported by: 0

README

dwrap

Go Reference test codecov

Linter dwrap forces every public function to begin with a deferring call of an error wrapping function like derrors.Wrap. By using dwrap, you can prevent functions from returning without wrapping errors.

func Good() (err error) {
  defer derrors.Wrap(&err, "Good")
  doStuff()
  return nil
}

func Bad() error { // <-  should call defer derrors.Wrap fist.
  doOtherStuff()
  return nil
}

//lint:ignore dwrap this is because ...
func Ignored() error {
  doOtherStuff()
  return nil
}

How to use

Build your dwrap binary by writing main.go like below.

package main

import (
  "github.com/qawatake/dwrap"
  "golang.org/x/tools/go/analysis/unitchecker"
)

func main() {
  unitchecker.Main(
    dwrap.NewAnalyzer("your/derrors/pkg", "Wrap"),
  )
}

Then, run go vet with your dwrap binary.

go vet -vettool=/path/to/your/dwrap ./...

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewAnalyzer

func NewAnalyzer(pkgPath string, funcName string) *analysis.Analyzer

Types

This section is empty.

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL