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 type names, can receive multiple flags.
Anonymous structs can be matched by '<anonymous>' alias.
4ex:
github.com/GaijinEntertainment/go-exhaustruct/v3/analyzer\.<anonymous>
github.com/GaijinEntertainment/go-exhaustruct/v3/analyzer\.TypeInfo
-e value
Regular expression to exclude type names, can receive multiple flags.
Anonymous structs can be matched by '<anonymous>' alias.
4ex:
github.com/GaijinEntertainment/go-exhaustruct/v3/analyzer\.<anonymous>
github.com/GaijinEntertainment/go-exhaustruct/v3/analyzer\.TypeInfo
// 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,
}