Skip to main content

Diagnostic

Struct Diagnostic 

Source
pub struct Diagnostic {
    pub span: Option<Span>,
    pub msg: String,
}
Expand description

Information attached to a diagnostic.

See the Emitter trait for general information on the error reporting strategy of formally.

See the emitter() function for how to reach the global Emitter object.

Fields§

§span: Option<Span>

The source span associated with this diagnostic.

§msg: String

The message attached to this diagnostic.

Implementations§

Source§

impl Diagnostic

Source

pub fn new(span: Option<Span>, msg: impl Display) -> Diagnostic

Constructs a diagnostic using any Display type as the source of the message.

Source

pub fn default_global_emitter() -> &'static dyn Emitter

Return a reference to the current default global Emitter.

This is the emitter used as the global emitter (returned by Diagnostic::emitter()) unless a call of Diagnostic::with() is ongoing in the current thread.

Source

pub fn set_default_global_emitter(emitter: impl 'static + Send + Sync + Emitter)

Set the default global Emitter.

This is the emitter used as the global emitter (returned by Diagnostic::emitter()) unless a call of Diagnostic::with() is ongoing in the current thread.

Source

pub fn emitter() -> &'static dyn Emitter

Return the current global Emitter.

Source

pub fn with<E, F, R>(emitter: E, f: F) -> R
where E: 'static + Emitter, F: UnwindSafe + FnOnce() -> R,

Temporarily changes the global Emitter.

Changes the global emitter for the current thread, executes the given function, and then restores the old global emitter. If the function panics, the old emitter is restored and the panic propagated.

Trait Implementations§

Source§

impl Clone for Diagnostic

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Diagnostic

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Emit for Diagnostic

Source§

fn emit(&self) -> DiagnosticEmitted

Emit the object as a diagnostic.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.