derail-report 0.1.0

Tools for reporting `derail::Error`s.
Documentation
#![doc = env!("CARGO_PKG_DESCRIPTION")]
#![doc = "\n\n"]
//! These functions operate on iterators of [`Error`]s. To report a single
//! [`Error`], make use of [`core::iter::once`].
//!
//! [`Error`]: derail::Error
//! [`Display`]: core::fmt::Display
#![doc = "[`derail-report`](crate) is `#![no_std]`-compatible, though it "]
#![doc = "depends on"]
#![cfg_attr(feature = "alloc", doc = " [`alloc`] ")]
#![cfg_attr(not(feature = "alloc"), doc = " `alloc` ")]
#![doc = "by default. Disable the `alloc` feature if this is undesirable."]
#![no_std]

#[cfg(feature = "alloc")]
extern crate alloc;

/// Attempt a fallible operation, storing the result and breaking on error.
macro_rules! attempt {
    ($e:expr, $result:expr $(,)?) => {
        $result = $e;
        if $result.is_err() {
            return ControlFlow::Break(());
        }
    };
}

mod buffer;
mod multiline;
mod oneline;
mod sealed;

#[cfg(feature = "alloc")]
#[doc(hidden)]
pub use buffer::Heap;
#[cfg(feature = "alloc")]
pub use buffer::HeapFactory;
#[doc(hidden)]
pub use buffer::Stack;
pub use buffer::{BufferFactory, StackFactory};
pub use multiline::display as multiline;
pub use oneline::display as oneline;