Expand description
Diagnostics module for Rune.
Diagnostics collects information about a source program in order to provide good human-readable diagnostics like errors, warnings, and hints.
In order to collect diagnostics during compilation you must register a Diagnostics object with Build::with_diagnostics.
use rune::termcolor::{ColorChoice, StandardStream};
use rune::{Sources, Diagnostics};
let mut sources = Sources::new();
let mut diagnostics = Diagnostics::new();
let result = rune::prepare(&mut sources)
.with_diagnostics(&mut diagnostics)
.build();
// We delay unwrapping result into a unit so that we can print diagnostics
// even if they relate to the compilation failing.
if !diagnostics.is_empty() {
let mut writer = StandardStream::stderr(ColorChoice::Always);
diagnostics.emit(&mut writer, &sources)?;
}
let unit = result?;
Structs§
- Diagnostics
- Structure to collect compilation diagnostics.
- Fatal
Diagnostic - Fatal diagnostic emitted during compilation. Fatal diagnostics indicates an unrecoverable issue.
- Runtime
Warning Diagnostic - Runtime Warning diagnostic emitted during the execution of the VM. Warning diagnostics indicates an recoverable issues.
- Warning
Diagnostic - Warning diagnostic emitted during compilation. Warning diagnostics indicates an recoverable issues.
Enums§
- Diagnostic
- A single diagnostic.
- Emit
Error emit
- Errors that can be raised when formatting diagnostics.
- Fatal
Diagnostic Kind - The kind of a FatalDiagnostic.