Files
ConfigKit/diagnostic.go

51 lines
1.2 KiB
Go

package configkit
import (
"io"
"gitea.maximumdirect.net/eric/ConfigKit/internal/engine"
)
// LoadError reports safe structured diagnostics for a failed configuration load.
type LoadError struct{ value *engine.LoadError }
func (e *LoadError) Error() string {
if e == nil || e.value == nil {
return "configkit: configuration load failed"
}
return e.value.Error()
}
func (e *LoadError) Diagnostics() []Diagnostic {
if e == nil || e.value == nil {
return nil
}
values := e.value.Diagnostics()
if values == nil {
return nil
}
result := make([]Diagnostic, len(values))
for i := range values {
result[i] = fromEngineDiagnostic(values[i])
}
return result
}
func (e *LoadError) Sources() []SourceInfo {
if e == nil || e.value == nil {
return nil
}
values := e.value.Sources()
if values == nil {
return nil
}
result := make([]SourceInfo, len(values))
for i := range values {
result[i] = fromEngineSourceInfo(values[i])
}
return result
}
// WriteDiagnostics writes diagnostics in canonical order.
func WriteDiagnostics(output io.Writer, diagnostics []Diagnostic) error {
return engine.WriteDiagnostics(output, toEngineDiagnostics(diagnostics))
}