cartel-pg 0.23.1

Async PostgreSQL driver for the dope runtime
Documentation
use cartel_core::{memory, reply::layout};
use o3::{
    alloc,
    buffer::{hold::limits, pool},
    depot::{capacity, queue::pool::fair},
};
use std::num::NonZero;

use crate::port::{config::Connection, ready};

#[derive(Clone, Debug, PartialEq, Eq)]
pub enum Error {
    Connections(Connection),
    Inflight {
        actual: usize,
        minimum: usize,
        maximum: usize,
    },
    AdmissionWaitersZero,
    RequestFrames {
        actual: usize,
        minimum: usize,
        maximum: usize,
    },
    RequestFrameBytes {
        actual: usize,
        maximum: usize,
    },
    ResponseItems {
        actual: usize,
        minimum: usize,
        maximum: usize,
    },
    ResponseBytesZero,
    ResponseFrameBytes {
        actual: usize,
        minimum: usize,
        maximum: usize,
    },
    ResponseFrameExceedsCapacity {
        frame_bytes: usize,
        payload_bytes: usize,
        available_payload_bytes: usize,
    },
    ResponseFrameExceedsLaneCapacity {
        frame_bytes: usize,
        payload_bytes: usize,
        available_payload_bytes: usize,
    },
    NotificationItems(capacity::Error),
    NotificationItemsZero,
    NotificationBytesZero,
    CancelBytesOverflow {
        connections: usize,
    },
    OwnerSlotsOverflow {
        items: usize,
        connections: usize,
    },
    OwnersOverflow {
        slots: usize,
        notifications: usize,
    },
    Owners(capacity::Error),
    FixedBaseOverflow {
        request_bytes: usize,
        cancel_bytes: usize,
    },
    FixedReadyOverflow {
        base_bytes: usize,
        ready_bytes: usize,
    },
    RequestPool(pool::LayoutError),
    RequestQueue(fair::Error),
    Ready(ready::Error),
    Arena(layout::Error),
    Memory(memory::Error),
    ResidentFixed(limits::Error),
    ResidentDiagnostic(limits::Error),
    GroupSlots(capacity::Error),
    GroupRecordsOverflow {
        groups: NonZero<usize>,
        records: NonZero<usize>,
    },
    GroupBytesOverflow {
        groups: NonZero<usize>,
        bytes: NonZero<usize>,
    },
    GroupRecordsLayout(alloc::Overflow),
    GroupPool(pool::LayoutError),
    GroupRecordsCapacity {
        requested: NonZero<usize>,
        available: usize,
    },
    GroupBytesCapacity {
        requested: NonZero<usize>,
        available: usize,
    },
}