#[non_exhaustive]pub enum TypeViolation {
UnknownNodeLabel {
id: NodeId,
labels: LabelSet,
},
UnknownEdgeLabel {
id: EdgeId,
label: DbString,
},
EdgeEndpointTypeMismatch {
id: EdgeId,
label: DbString,
expected_source_type: EdgeEndpointDef,
observed_source_type: u32,
expected_target_type: EdgeEndpointDef,
observed_target_type: u32,
},
MissingRequiredProperty {
entity_id: EntityId,
property: DbString,
declared_in: DbString,
},
PropertyTypeMismatch {
entity_id: EntityId,
property: DbString,
expected: PropertyValueType,
observed: &'static str,
},
ExtensionValueRejected {
entity_id: EntityId,
property: DbString,
},
UndeclaredProperty {
entity_id: EntityId,
property: DbString,
},
ImmutablePropertyUpdate {
entity_id: EntityId,
property: DbString,
declared_in: DbString,
},
UniquePropertyDuplicate {
entity_id: EntityId,
conflicting_entity_id: EntityId,
property: DbString,
declared_in: DbString,
},
}Expand description
Closed graph type validation failure.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
UnknownNodeLabel
Node labels do not match any node type.
UnknownEdgeLabel
Edge label does not match any edge type.
EdgeEndpointTypeMismatch
Edge endpoints do not match the declared edge type endpoints.
Fields
§
expected_source_type: EdgeEndpointDefExpected source endpoint.
§
expected_target_type: EdgeEndpointDefExpected target endpoint.
MissingRequiredProperty
Required property is absent or null.
Fields
PropertyTypeMismatch
Property value has the wrong runtime type.
Fields
§
expected: PropertyValueTypeExpected property value type.
ExtensionValueRejected
Value::Extended is not a declarable closed-graph type.
UndeclaredProperty
Property is not declared by the matched node or edge type.
Fields
ImmutablePropertyUpdate
Immutable property was updated or removed.
Fields
UniquePropertyDuplicate
Unique property value is already used by another entity of the declaring type.
Trait Implementations§
Source§impl Clone for TypeViolation
impl Clone for TypeViolation
Source§fn clone(&self) -> TypeViolation
fn clone(&self) -> TypeViolation
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 TypeViolation
impl Debug for TypeViolation
Source§impl Diagnostic for TypeViolation
impl Diagnostic for TypeViolation
Source§fn code(&self) -> Option<Box<dyn Display + '_>>
fn code(&self) -> Option<Box<dyn Display + '_>>
Unique diagnostic code that can be used to look up more information
about this
Diagnostic. Ideally also globally unique, and documented
in the toplevel crate’s documentation for easy searching. Rust path
format (foo::bar::baz) is recommended, but more classic codes like
E0123 or enums will work just fine.Source§fn severity(&self) -> Option<Severity>
fn severity(&self) -> Option<Severity>
Diagnostic severity. This may be used by
ReportHandlers to change the display format
of this diagnostic. Read moreSource§fn help<'a>(&'a self) -> Option<Box<dyn Display + 'a>>
fn help<'a>(&'a self) -> Option<Box<dyn Display + 'a>>
Additional help text related to this
Diagnostic. Do you have any
advice for the poor soul who’s just run into this issue?Source§fn url<'a>(&'a self) -> Option<Box<dyn Display + 'a>>
fn url<'a>(&'a self) -> Option<Box<dyn Display + 'a>>
URL to visit for a more detailed explanation/help about this
Diagnostic.Source§fn source_code(&self) -> Option<&dyn SourceCode>
fn source_code(&self) -> Option<&dyn SourceCode>
Source code to apply this
Diagnostic’s Diagnostic::labels to.Source§fn labels(&self) -> Option<Box<dyn Iterator<Item = LabeledSpan> + '_>>
fn labels(&self) -> Option<Box<dyn Iterator<Item = LabeledSpan> + '_>>
Labels to apply to this
Diagnostic’s Diagnostic::source_codeAdditional related
Diagnostics.Source§fn diagnostic_source(&self) -> Option<&dyn Diagnostic>
fn diagnostic_source(&self) -> Option<&dyn Diagnostic>
The cause of the error.
Source§impl Display for TypeViolation
impl Display for TypeViolation
impl Eq for TypeViolation
Source§impl Error for TypeViolation
impl Error for TypeViolation
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl From<TypeViolation> for GraphError
impl From<TypeViolation> for GraphError
Source§fn from(source: TypeViolation) -> Self
fn from(source: TypeViolation) -> Self
Converts to this type from the input type.
Source§impl PartialEq for TypeViolation
impl PartialEq for TypeViolation
Source§fn eq(&self, other: &TypeViolation) -> bool
fn eq(&self, other: &TypeViolation) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for TypeViolation
Auto Trait Implementations§
impl Freeze for TypeViolation
impl RefUnwindSafe for TypeViolation
impl Send for TypeViolation
impl Sync for TypeViolation
impl Unpin for TypeViolation
impl UnsafeUnpin for TypeViolation
impl UnwindSafe for TypeViolation
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> 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> 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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§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.