pub struct NodeDbError { /* private fields */ }Expand description
Public error type returned by all NodeDb trait methods.
Separates machine-readable data (ErrorCode + ErrorDetails) from
the human-readable message. Optional cause preserves the error chain.
Implementations§
Source§impl NodeDbError
impl NodeDbError
Sourcepub fn mirror_read_only(database: impl Into<String>) -> NodeDbError
pub fn mirror_read_only(database: impl Into<String>) -> NodeDbError
Write was rejected because the target database is an un-promoted mirror.
The mirror is read-only until ALTER DATABASE <name> PROMOTE is issued.
Sourcepub fn stale_read_not_leader(
database: impl Into<String>,
source_cluster: impl Into<String>,
) -> NodeDbError
pub fn stale_read_not_leader( database: impl Into<String>, source_cluster: impl Into<String>, ) -> NodeDbError
Strong-consistency read was requested on a mirror database.
Mirrors cannot serve strong reads; the client should redirect to
source_cluster.
Sourcepub fn mirror_not_promoted(database: impl Into<String>) -> NodeDbError
pub fn mirror_not_promoted(database: impl Into<String>) -> NodeDbError
Operation requires the database to already be a promoted mirror.
Source§impl NodeDbError
impl NodeDbError
Sourcepub fn move_tenant_drain_timeout(
tenant: impl Into<String>,
source_db: impl Into<String>,
) -> NodeDbError
pub fn move_tenant_drain_timeout( tenant: impl Into<String>, source_db: impl Into<String>, ) -> NodeDbError
Drain phase timed out; the tenant’s sessions on source could not be cleanly wound down within the bounded window. The source is left unmodified; no data was moved.
Sourcepub fn move_tenant_preflight_failed(
tenant: impl Into<String>,
detail: impl Into<String>,
) -> NodeDbError
pub fn move_tenant_preflight_failed( tenant: impl Into<String>, detail: impl Into<String>, ) -> NodeDbError
Pre-flight schema-compatibility check failed. No state was mutated.
Sourcepub fn move_tenant_snapshot_failed(
tenant: impl Into<String>,
detail: impl Into<String>,
) -> NodeDbError
pub fn move_tenant_snapshot_failed( tenant: impl Into<String>, detail: impl Into<String>, ) -> NodeDbError
Snapshot phase failed; partial snapshot has been cleaned up. Source is unmodified.
Sourcepub fn move_tenant_cutover_failed(
tenant: impl Into<String>,
detail: impl Into<String>,
) -> NodeDbError
pub fn move_tenant_cutover_failed( tenant: impl Into<String>, detail: impl Into<String>, ) -> NodeDbError
Cutover Raft proposal failed. The source database still holds the tenant’s data; no partial state was left.
Sourcepub fn move_tenant_already_at_target(
tenant: impl Into<String>,
target_db: impl Into<String>,
) -> NodeDbError
pub fn move_tenant_already_at_target( tenant: impl Into<String>, target_db: impl Into<String>, ) -> NodeDbError
The tenant’s data is already in the target database; this is the
idempotent response when a previously completed MOVE TENANT is
re-issued.
Source§impl NodeDbError
impl NodeDbError
pub fn collection_not_found(collection: impl Into<String>) -> NodeDbError
Sourcepub fn collection_draining(collection: impl Into<String>) -> NodeDbError
pub fn collection_draining(collection: impl Into<String>) -> NodeDbError
Collection is mid-purge; new scans are refused until the purge
ack. Distinct from collection_not_found so clients can
differentiate “try again in a moment” from “does not exist”.
Sourcepub fn collection_deactivated(
collection: impl Into<String>,
retention_expires_at_ns: u64,
) -> NodeDbError
pub fn collection_deactivated( collection: impl Into<String>, retention_expires_at_ns: u64, ) -> NodeDbError
Collection is soft-deleted (retention window active). Distinct
from collection_not_found so clients can surface the
UNDROP COLLECTION <name> hint instead of “does not exist”.
pub fn document_not_found( collection: impl Into<String>, document_id: impl Into<String>, ) -> NodeDbError
pub fn plan_error(detail: impl Display) -> NodeDbError
pub fn plan_error_at( phase: impl Into<String>, detail: impl Into<String>, ) -> NodeDbError
pub fn fan_out_exceeded(shards_touched: u16, limit: u16) -> NodeDbError
pub fn sql_not_enabled() -> NodeDbError
pub fn auth_expired(detail: impl Display) -> NodeDbError
Sourcepub fn tenant_vector_dim_exceeded(dim: u32, limit: u32) -> NodeDbError
pub fn tenant_vector_dim_exceeded(dim: u32, limit: u32) -> NodeDbError
Vector insert or index rejected: vector dim exceeds tenant’s
max_vector_dim quota.
Sourcepub fn tenant_graph_depth_exceeded(depth: u32, limit: u32) -> NodeDbError
pub fn tenant_graph_depth_exceeded(depth: u32, limit: u32) -> NodeDbError
Graph traversal rejected: requested depth exceeds tenant’s
max_graph_depth quota.
Sourcepub fn clone_depth_exceeded(depth: u32, limit: u32) -> NodeDbError
pub fn clone_depth_exceeded(depth: u32, limit: u32) -> NodeDbError
CLONE DATABASE rejected: the clone chain is already at depth levels,
which equals or exceeds MAX_CLONE_DEPTH (8).
Sourcepub fn cannot_clone_mirror(database: impl Into<String>) -> NodeDbError
pub fn cannot_clone_mirror(database: impl Into<String>) -> NodeDbError
CLONE DATABASE rejected: the source database is a mirror and cannot
be cloned until it is promoted to a writable primary.
Sourcepub fn clone_dependency(
source: impl Into<String>,
dependents: Vec<String>,
) -> NodeDbError
pub fn clone_dependency( source: impl Into<String>, dependents: Vec<String>, ) -> NodeDbError
DROP DATABASE rejected: one or more databases are cloned from this
source. dependents lists the dependent database names.
Sourcepub fn clone_predates_query_time(
as_of_lsn: u64,
created_at_lsn: u64,
) -> NodeDbError
pub fn clone_predates_query_time( as_of_lsn: u64, created_at_lsn: u64, ) -> NodeDbError
Bitemporal AS OF query predates the clone’s creation LSN; the clone
did not exist at that point in time.
Source§impl NodeDbError
impl NodeDbError
Sourcepub fn handshake_failed(
code: HelloErrorCode,
message: impl Display,
) -> NodeDbError
pub fn handshake_failed( code: HelloErrorCode, message: impl Display, ) -> NodeDbError
Build a HandshakeFailed error from a HelloErrorCode and the server’s
diagnostic message.
pub fn sync_connection_failed(detail: impl Display) -> NodeDbError
pub fn sync_delta_rejected( reason: impl Display, compensation: Option<CompensationHint>, ) -> NodeDbError
pub fn shape_subscription_failed( shape_id: impl Into<String>, detail: impl Display, ) -> NodeDbError
pub fn storage(detail: impl Display) -> NodeDbError
pub fn storage_op( component: impl Into<String>, op: impl Into<String>, detail: impl Into<String>, ) -> NodeDbError
pub fn segment_corrupted(detail: impl Display) -> NodeDbError
pub fn segment_corrupted_at( segment_id: u64, corruption: impl Into<String>, detail: impl Into<String>, ) -> NodeDbError
pub fn cold_storage(detail: impl Display) -> NodeDbError
pub fn cold_storage_op( backend: impl Into<String>, op: impl Into<String>, detail: impl Into<String>, ) -> NodeDbError
pub fn wal(detail: impl Display) -> NodeDbError
pub fn wal_at( stage: impl Into<String>, detail: impl Into<String>, ) -> NodeDbError
pub fn serialization( format: impl Into<String>, detail: impl Display, ) -> NodeDbError
pub fn codec(detail: impl Display) -> NodeDbError
pub fn codec_at( codec: impl Into<String>, op: impl Into<String>, detail: impl Into<String>, ) -> NodeDbError
pub fn config(detail: impl Display) -> NodeDbError
pub fn bad_request(detail: impl Display) -> NodeDbError
pub fn no_leader(detail: impl Display) -> NodeDbError
pub fn not_leader(leader_addr: impl Into<String>) -> NodeDbError
pub fn migration_in_progress(detail: impl Display) -> NodeDbError
pub fn node_unreachable(detail: impl Display) -> NodeDbError
pub fn cluster(detail: impl Display) -> NodeDbError
pub fn memory_exhausted(engine: impl Into<String>) -> NodeDbError
pub fn encryption(detail: impl Display) -> NodeDbError
pub fn encryption_at( cipher: impl Into<String>, detail: impl Into<String>, ) -> NodeDbError
pub fn array(array: impl Into<String>, detail: impl Display) -> NodeDbError
Sourcepub fn quota_overcommit(
field: impl Into<String>,
detail: impl Display,
) -> NodeDbError
pub fn quota_overcommit( field: impl Into<String>, detail: impl Display, ) -> NodeDbError
Sum of database or tenant quotas would exceed the configured ceiling.
Sourcepub fn quota_exceeded(
scope: impl Into<String>,
detail: impl Display,
) -> NodeDbError
pub fn quota_exceeded( scope: impl Into<String>, detail: impl Display, ) -> NodeDbError
Request rejected because a tenant or database quota is exhausted.
Sourcepub fn server_overload(detail: impl Display) -> NodeDbError
pub fn server_overload(detail: impl Display) -> NodeDbError
Global resource pressure; server cannot accept the request.
pub fn bridge(detail: impl Display) -> NodeDbError
pub fn bridge_op( plane: impl Into<String>, op: impl Into<String>, detail: impl Into<String>, ) -> NodeDbError
pub fn dispatch(detail: impl Display) -> NodeDbError
pub fn dispatch_at( stage: impl Into<String>, detail: impl Into<String>, ) -> NodeDbError
pub fn internal(detail: impl Display) -> NodeDbError
pub fn internal_at( component: impl Into<String>, detail: impl Into<String>, ) -> NodeDbError
Source§impl NodeDbError
impl NodeDbError
pub fn constraint_violation( collection: impl Into<String>, detail: impl Display, ) -> NodeDbError
pub fn write_conflict( collection: impl Into<String>, document_id: impl Into<String>, ) -> NodeDbError
pub fn deadline_exceeded() -> NodeDbError
pub fn prevalidation_rejected( constraint: impl Into<String>, reason: impl Display, ) -> NodeDbError
pub fn append_only_violation( collection: impl Into<String>, detail: impl Display, ) -> NodeDbError
pub fn balance_violation( collection: impl Into<String>, detail: impl Display, ) -> NodeDbError
pub fn period_locked( collection: impl Into<String>, detail: impl Display, ) -> NodeDbError
pub fn state_transition_violation( collection: impl Into<String>, detail: impl Display, ) -> NodeDbError
pub fn transition_check_violation( collection: impl Into<String>, detail: impl Display, ) -> NodeDbError
pub fn type_guard_violation( collection: impl Into<String>, detail: impl Display, ) -> NodeDbError
pub fn retention_violation( collection: impl Into<String>, detail: impl Display, ) -> NodeDbError
pub fn legal_hold_active( collection: impl Into<String>, detail: impl Display, ) -> NodeDbError
pub fn type_mismatch( collection: impl Into<String>, detail: impl Display, ) -> NodeDbError
pub fn overflow( collection: impl Into<String>, detail: impl Display, ) -> NodeDbError
pub fn insufficient_balance( collection: impl Into<String>, detail: impl Display, ) -> NodeDbError
pub fn rate_exceeded( gate: impl Into<String>, detail: impl Display, ) -> NodeDbError
Source§impl NodeDbError
impl NodeDbError
Sourcepub fn details(&self) -> &ErrorDetails
pub fn details(&self) -> &ErrorDetails
Machine-matchable error details.
Sourcepub fn cause(&self) -> Option<&NodeDbError>
pub fn cause(&self) -> Option<&NodeDbError>
The chained cause, if any.
Sourcepub fn with_cause(self, cause: NodeDbError) -> NodeDbError
pub fn with_cause(self, cause: NodeDbError) -> NodeDbError
Attach a cause to this error.
Sourcepub fn is_retriable(&self) -> bool
pub fn is_retriable(&self) -> bool
Whether this error is retriable by the client.
Sourcepub fn is_client_error(&self) -> bool
pub fn is_client_error(&self) -> bool
Whether this error indicates the client sent invalid input.
Source§impl NodeDbError
impl NodeDbError
pub fn is_constraint_violation(&self) -> bool
pub fn is_not_found(&self) -> bool
pub fn is_auth_denied(&self) -> bool
pub fn is_storage(&self) -> bool
pub fn is_internal(&self) -> bool
pub fn is_type_mismatch(&self) -> bool
pub fn is_type_guard_violation(&self) -> bool
pub fn is_overflow(&self) -> bool
pub fn is_insufficient_balance(&self) -> bool
pub fn is_rate_exceeded(&self) -> bool
pub fn is_cluster(&self) -> bool
Trait Implementations§
Source§impl Clone for NodeDbError
impl Clone for NodeDbError
Source§fn clone(&self) -> NodeDbError
fn clone(&self) -> NodeDbError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for NodeDbError
impl Debug for NodeDbError
Source§impl<'de> Deserialize<'de> for NodeDbError
impl<'de> Deserialize<'de> for NodeDbError
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<NodeDbError, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<NodeDbError, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Display for NodeDbError
impl Display for NodeDbError
Source§impl Error for NodeDbError
impl Error for NodeDbError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<Error> for NodeDbError
impl From<Error> for NodeDbError
Source§fn from(e: Error) -> NodeDbError
fn from(e: Error) -> NodeDbError
Source§impl From<NdbDateTimeError> for NodeDbError
impl From<NdbDateTimeError> for NodeDbError
Source§fn from(e: NdbDateTimeError) -> NodeDbError
fn from(e: NdbDateTimeError) -> NodeDbError
Source§impl Serialize for NodeDbError
impl Serialize for NodeDbError
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for NodeDbError
impl RefUnwindSafe for NodeDbError
impl Send for NodeDbError
impl Sync for NodeDbError
impl Unpin for NodeDbError
impl UnsafeUnpin for NodeDbError
impl UnwindSafe for NodeDbError
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.