exhaustruct
is a golang analyzer that finds structures with uninitialized fields
go get -u github.com/GaijinEntertainment/go-exhaustruct/v3/cmd/exhaustruct
exhaustruct [-flag] [package]
Flags:
-i value
Regular expression to match structures, can receive multiple flags
-e value
Regular expression to exclude structures, can receive multiple flags
// Package a.go
package a
type Shape struct {
Length int
Width int
volume int
Perimeter int `exhaustruct:"optional"`
}
// valid
var a Shape = Shape{
Length: 5,
Width: 3,
volume: 5,
}
// invalid, `volume` is missing
var b Shape = Shape{
Length: 5,
Width: 3,
}
// Package b.go
package b
import "a"
// valid
var b Shape = a.Shape{
Length: 5,
Width: 3,
}
// invalid, `Width` is missing
var b Shape = a.Shape{
Length: 5,
}