use core::{error::Error, fmt};

/// An error occurred when operating with [`Arena`](crate::Arena).
#[derive(Debug)]
pub enum ArenaError {
    /// Ran out of system memory when allocating a new item.
    OutOfSystemMemory,
    /// Encountered a key that is out of bounds for an arena.
    KeyOutOfBounds,
    /// Allocated too many items to an arena.
    NotEnoughKeys,
    /// Tried to access aliasing item pair.
    AliasingPairAccess,
}

impl Error for ArenaError {}

impl fmt::Display for ArenaError {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        let s = match self {
            Self::OutOfSystemMemory => "ran out of system memory",
            Self::KeyOutOfBounds => "encounteded out of bounds key",
            Self::NotEnoughKeys => "ran out of valid keys",
            Self::AliasingPairAccess => "tried to access aliasing item pair",
        };
        f.write_str(s)
    }
}

Homonyms

soft3/mir/src/error.rs
soft3/tru/rs/error.rs
warriors/trisha/cli/error.rs
neural/rs/darwin-sys/src/error.rs
soft3/radio/iroh-car/src/error.rs
soft3/radio/iroh-ffi/src/error.rs
cyb/prysm/molecules/rs/error.rs
soft3/radio/cyber-bao/src/io/error.rs
soft3/radio/iroh-willow/src/session/error.rs
cyb/evy/forks/naga/src/error.rs
cyb/wysm/crates/fuzz/src/error.rs
cyb/evy/crates/evy_engine_tasks/src/error.rs
soft3/radio/iroh-dns-server/src/http/error.rs
cyb/wysm/crates/ir/src/error.rs
soft3/radio/iroh-blobs/src/get/error.rs
cyb/wysm/crates/c_api/src/error.rs
cyb/wysm/crates/wasmi/src/error.rs
cyb/evy/crates/evy_engine_dispatch/src/error.rs
cyb/wysm/crates/core/src/table/error.rs
bootloader/go-cyber/cw/contracts/graph-filter/src/error.rs
cyb/wysm/crates/core/src/memory/error.rs
cyb/evy/forks/bevy_ecs/src/schedule/error.rs
bootloader/go-cyber/cw/contracts/std-test/src/error.rs
cyb/evy/forks/bevy_ecs/src/world/error.rs
cyb/wysm/crates/wasmi/src/func/error.rs
cyb/evy/forks/bevy_ecs/src/query/error.rs
cyb/wysm/crates/wasmi/src/store/error.rs
cyb/evy/forks/naga/src/front/wgsl/error.rs
cyb/evy/forks/naga/src/front/spv/error.rs
cyb/wysm/crates/wasmi/src/engine/translator/error.rs
cyb/evy/forks/naga/src/front/glsl/error.rs
cyb/wysm/crates/wasmi/src/module/instantiate/error.rs

Graph