pub enum EdgeEndpointDef {
Any,
NodeType(NodeTypeRef),
OneOf(SmallVec<[NodeTypeRef; 4]>),
}Expand description
Edge endpoint definition.
OneOf carries a sorted, deduplicated, length-≥-2 set of distinct
NodeTypeRefs. Construct it via EdgeEndpointDef::one_of so the
invariants are enforced (singleton inputs collapse to
EdgeEndpointDef::NodeType). The WAL is permissive — recovery re-applies
the constructor through the storage-side resolver, so direct struct
construction in WAL paths is acceptable and replay canonicalizes.
Variants§
Any
Accept any declared node type at this endpoint.
NodeType(NodeTypeRef)
Reference one concrete node type.
OneOf(SmallVec<[NodeTypeRef; 4]>)
Reference any node type drawn from a sorted, deduplicated, length-≥-2 set of distinct node types.
Implementations§
Source§impl EdgeEndpointDef
impl EdgeEndpointDef
Sourcepub fn one_of(refs: impl IntoIterator<Item = NodeTypeRef>) -> Self
pub fn one_of(refs: impl IntoIterator<Item = NodeTypeRef>) -> Self
Construct an endpoint accepting refs, canonicalized.
References are sorted by database-string identity and deduplicated. A
single resulting reference collapses to EdgeEndpointDef::NodeType.
§Panics
Panics when the resulting set is empty; zero-label endpoints are a caller bug and the upstream resolver must reject them before reaching this constructor.
Trait Implementations§
Source§impl Clone for EdgeEndpointDef
impl Clone for EdgeEndpointDef
Source§fn clone(&self) -> EdgeEndpointDef
fn clone(&self) -> EdgeEndpointDef
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 EdgeEndpointDef
impl Debug for EdgeEndpointDef
Source§impl<'de> Deserialize<'de> for EdgeEndpointDef
impl<'de> Deserialize<'de> for EdgeEndpointDef
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>,
impl Eq for EdgeEndpointDef
Source§impl Hash for EdgeEndpointDef
impl Hash for EdgeEndpointDef
Source§impl PartialEq for EdgeEndpointDef
impl PartialEq for EdgeEndpointDef
Source§fn eq(&self, other: &EdgeEndpointDef) -> bool
fn eq(&self, other: &EdgeEndpointDef) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for EdgeEndpointDef
impl Serialize for EdgeEndpointDef
impl StructuralPartialEq for EdgeEndpointDef
Auto Trait Implementations§
impl Freeze for EdgeEndpointDef
impl RefUnwindSafe for EdgeEndpointDef
impl Send for EdgeEndpointDef
impl Sync for EdgeEndpointDef
impl Unpin for EdgeEndpointDef
impl UnsafeUnpin for EdgeEndpointDef
impl UnwindSafe for EdgeEndpointDef
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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>
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.