51 lines
1.2 KiB
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))
|
|
}
|