41 lines
707 B
Go
41 lines
707 B
Go
|
package tfdiags
|
||
|
|
||
|
import (
|
||
|
"github.com/hashicorp/hcl/v2"
|
||
|
)
|
||
|
|
||
|
type Diagnostic interface {
|
||
|
Severity() Severity
|
||
|
Description() Description
|
||
|
Source() Source
|
||
|
|
||
|
// FromExpr returns the expression-related context for the diagnostic, if
|
||
|
// available. Returns nil if the diagnostic is not related to an
|
||
|
// expression evaluation.
|
||
|
FromExpr() *FromExpr
|
||
|
}
|
||
|
|
||
|
type Severity rune
|
||
|
|
||
|
//go:generate go run golang.org/x/tools/cmd/stringer -type=Severity
|
||
|
|
||
|
const (
|
||
|
Error Severity = 'E'
|
||
|
Warning Severity = 'W'
|
||
|
)
|
||
|
|
||
|
type Description struct {
|
||
|
Summary string
|
||
|
Detail string
|
||
|
}
|
||
|
|
||
|
type Source struct {
|
||
|
Subject *SourceRange
|
||
|
Context *SourceRange
|
||
|
}
|
||
|
|
||
|
type FromExpr struct {
|
||
|
Expression hcl.Expression
|
||
|
EvalContext *hcl.EvalContext
|
||
|
}
|