DoNotCompare can be embedded in a struct to prevent comparability.
type DoNotCompare [0]func()
DoNotCopy can be embedded in a struct to help prevent shallow copies. This does not rely on a Go language feature, but rather a special case within the vet checker.
See https://golang.org/issues/8005.
type DoNotCopy [0]sync.Mutex
DoNotImplement can be embedded in an interface to prevent trivial implementations of the interface.
This is useful to prevent unauthorized implementations of an interface so that it can be extended in the future for any protobuf language changes.
type DoNotImplement interface{ ProtoInternal(DoNotImplement) }
NoUnkeyedLiterals can be embedded in a struct to prevent unkeyed literals.
type NoUnkeyedLiterals struct{}