pub enum ViolationType {
RlsPolicyViolation {
policy_name: String,
},
UniqueViolation {
field: String,
value: String,
},
ForeignKeyMissing {
referenced_id: String,
},
PermissionDenied,
RateLimited,
TokenExpired,
SchemaViolation {
field: String,
reason: String,
},
ConstraintViolation {
detail: String,
},
}Expand description
Why a sync delta was placed in the Dead-Letter Queue.
Used on the Origin side for audit/forensics. The edge never sees this
directly — it only receives CompensationHint (which may be generic
for security reasons).
Variants§
RlsPolicyViolation
RLS write policy rejected the delta.
UniqueViolation
UNIQUE constraint violation.
ForeignKeyMissing
Foreign key reference missing.
PermissionDenied
Permission denied (no write access to target resource).
RateLimited
Rate limit exceeded for this session.
TokenExpired
JWT token expired during active session.
SchemaViolation
Schema validation failed.
ConstraintViolation
Generic constraint violation (catch-all).
Implementations§
Source§impl ViolationType
impl ViolationType
Sourcepub fn to_compensation_hint(&self) -> CompensationHint
pub fn to_compensation_hint(&self) -> CompensationHint
Convert a violation to the corresponding CompensationHint for the edge.
Some violations map to a generic hint (e.g., RLS → PermissionDenied) to avoid leaking security-sensitive information to untrusted edges.
Trait Implementations§
Source§impl Archive for ViolationType
impl Archive for ViolationType
Source§type Archived = ArchivedViolationType
type Archived = ArchivedViolationType
The archived representation of this type. Read more
Source§type Resolver = ViolationTypeResolver
type Resolver = ViolationTypeResolver
The resolver for this type. It must contain all the additional
information from serializing needed to make the archived type from
the normal type.
Source§fn resolve(
&self,
resolver: <Self as Archive>::Resolver,
out: Place<<Self as Archive>::Archived>,
)
fn resolve( &self, resolver: <Self as Archive>::Resolver, out: Place<<Self as Archive>::Archived>, )
Creates the archived version of this value at the given position and
writes it to the given output. Read more
Source§const COPY_OPTIMIZATION: CopyOptimization<Self> = _
const COPY_OPTIMIZATION: CopyOptimization<Self> = _
An optimization flag that allows the bytes of this type to be copied
directly to a writer instead of calling
serialize. Read moreSource§impl Clone for ViolationType
impl Clone for ViolationType
Source§fn clone(&self) -> ViolationType
fn clone(&self) -> ViolationType
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ViolationType
impl Debug for ViolationType
Source§impl<'de> Deserialize<'de> for ViolationType
impl<'de> Deserialize<'de> for ViolationType
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<__D: Fallible + ?Sized> Deserialize<ViolationType, __D> for Archived<ViolationType>
impl<__D: Fallible + ?Sized> Deserialize<ViolationType, __D> for Archived<ViolationType>
Source§fn deserialize(
&self,
deserializer: &mut __D,
) -> Result<ViolationType, <__D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut __D, ) -> Result<ViolationType, <__D as Fallible>::Error>
Deserializes using the given deserializer
Source§impl Display for ViolationType
impl Display for ViolationType
Source§impl PartialEq for ViolationType
impl PartialEq for ViolationType
Source§impl Serialize for ViolationType
impl Serialize for ViolationType
impl Eq for ViolationType
impl StructuralPartialEq for ViolationType
Auto Trait Implementations§
impl Freeze for ViolationType
impl RefUnwindSafe for ViolationType
impl Send for ViolationType
impl Sync for ViolationType
impl Unpin for ViolationType
impl UnsafeUnpin for ViolationType
impl UnwindSafe for ViolationType
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> ArchiveUnsized for Twhere
T: Archive,
impl<T> ArchiveUnsized for Twhere
T: Archive,
Source§type Archived = <T as Archive>::Archived
type Archived = <T as Archive>::Archived
The archived counterpart of this type. Unlike
Archive, it may be
unsized. Read moreSource§fn archived_metadata(
&self,
) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
fn archived_metadata( &self, ) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
Creates the archived version of the metadata for this value.
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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>
Returns the layout of the type.
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
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.