// @generated by scripts/generate_embedded_node_contracts.py
// Source: docs/contracts/node-error-codes-v1.json

#[repr(C)]
#[derive(Debug, Clone, Copy, Eq, PartialEq)]
pub enum RnsEmbeddedV1NodeErrorCode {
    /// Unspecified node-centric failure.
    Unknown = 0,
    /// Caller supplied an invalid or unsupported node configuration.
    InvalidConfig = 1,
    /// The node hit an IO or backend state failure.
    IoError = 2,
    /// The active backend or link is disconnected or unavailable.
    NetworkError = 3,
    /// The underlying embedded protocol/runtime rejected the operation.
    ReticulumError = 4,
    /// The node is already running for the requested lifecycle transition.
    AlreadyRunning = 5,
    /// The operation requires a running node.
    NotRunning = 6,
    /// The requested wait budget elapsed.
    Timeout = 7,
    /// The runtime or FFI bridge reached an internal invariant failure.
    InternalError = 8,
    /// The caller passed a null, stale, or mismatched opaque handle.
    InvalidHandle = 9,
    /// The caller passed an invalid pointer for an input or output buffer.
    InvalidPointer = 10,
    /// The caller mixed manual and managed node progression modes.
    ModeConflict = 11,
    /// A poll observed that the subscription handle was closed.
    SubscriptionClosed = 12,
    /// A poll observed a generation change and the node restarted.
    NodeRestarted = 13,
    /// A poll observed an event-log gap and advanced to the next retained event.
    EventGap = 14,
    /// The node rejected the operation because queue capacity would be exceeded.
    QueuePressure = 15,
}
