pub struct EdgeStore {
pub label: ChunkedVec<DbString>,
pub source: ChunkedVec<NodeId>,
pub target: ChunkedVec<NodeId>,
pub properties: ChunkedVec<PropertyMap>,
pub row_to_id: ChunkedVec<EdgeId>,
pub alive: Arc<RoaringBitmap>,
}Expand description
Edge columns plus liveness bitmap.
Stored edges are directed by construction: every live row has exactly one source node and one target node. Undirected query patterns are a matching convenience and do not add an undirected storage bit.
Fields§
§label: ChunkedVec<DbString>Per-row edge label.
source: ChunkedVec<NodeId>Per-row edge source node.
target: ChunkedVec<NodeId>Per-row edge target node.
properties: ChunkedVec<PropertyMap>Per-row edge property maps.
row_to_id: ChunkedVec<EdgeId>Per-row external edge id (RowIndex -> EdgeId). Dead / hole rows hold
EdgeId::TOMBSTONE. Parallel with label: the stable id
is read here, never synthesized as row + 1.
alive: Arc<RoaringBitmap>Alive row indexes, shared copy-on-write across snapshots (B1): cloning
the store bumps a refcount; mutate only through
alive_mut so a pre-clone snapshot never observes
the change.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for EdgeStore
impl RefUnwindSafe for EdgeStore
impl Send for EdgeStore
impl Sync for EdgeStore
impl Unpin for EdgeStore
impl UnsafeUnpin for EdgeStore
impl UnwindSafe for EdgeStore
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<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.