Skip to main content

GraphView

Struct GraphView 

Source
pub struct GraphView<'a> {
    pub ids: &'a IdMap,
    pub syms: &'a Interner,
    pub labels: &'a [u32],
    pub props: ColumnsView<'a>,
    pub topo: TopologyView<'a>,
    pub edge_props: EdgePropsView<'a>,
    pub mask: Option<&'a HashSet<u32>>,
    pub prop_index: Option<&'a PropertyIndex>,
}
Expand description

Read-only twin of GraphMut. Holds only borrowed graph state.

Fields§

§ids: &'a IdMap§syms: &'a Interner§labels: &'a [u32]§props: ColumnsView<'a>

Overlay-over-base column store view. For V5–V7 snapshots and fresh databases, base is None and all column reads go to the overlay. For V8 snapshots, base holds the archived columns from the mmap.

§topo: TopologyView<'a>

Overlay-over-base topology view. For V5–V7 snapshots and fresh databases, base is None and all topology reads go to the owned overlay. For V8 snapshots, base holds the archived CSR from the mmap, and WAL-replayed edges accumulate in the overlay.

§edge_props: EdgePropsView<'a>

Overlay-over-base edge-property view. For V8 snapshots the base section is consulted zero-copy; the overlay holds only post-snapshot changes. Tombstones in the overlay mask deleted-from-base entries.

§mask: Option<&'a HashSet<u32>>

Optional query-scoped node visibility set. None = all nodes visible. When Some(set), only dense ids present in set are accessible.

§prop_index: Option<&'a PropertyIndex>

Optional equality index over scalar properties. Some on the primary locked read path; None for MVCC reader snapshots (which fall back to a scan). IndexScan consults it only when the (label, field) is declared.

Implementations§

Source§

impl<'a> GraphView<'a>

Source

pub fn visible(&self, id: u32) -> bool

Returns true if id is visible under the current mask. Always true when no mask is set.

Source

pub fn node_id(&self, key: &str) -> Option<u32>

Source

pub fn key_of(&self, id: u32) -> &str

Source

pub fn label_of(&self, id: u32) -> Option<&str>

Source

pub fn nodes_with_prop( &self, label: &str, field: &str, value: &Value, ) -> Option<Vec<u32>>

Indexed lookup of node ids of label whose scalar field equals value, filtered by the active mask. Returns None when no equality index covers (label, field) (the caller should fall back to a scan); Some(ids) — possibly empty — when the index answers the query.

Source

pub fn nodes_with_label(&self, label: &str) -> Vec<u32>

Source

pub fn nodes_all(&self) -> Vec<u32>

All non-tombstoned node ids regardless of label.

Respects the query-scoped mask: when a mask is active only ids present in the mask are returned, consistent with every other node accessor.

Source

pub fn prop(&self, id: u32, field: &str) -> Option<ValueRef<'_>>

Look up the property field for node id.

Returns ValueRef::Borrowed for overlay hits (zero allocation) and ValueRef::Owned for base-section hits (value materialised from archived data). Returns None when neither overlay nor base has a value for (id, field).

Auto Trait Implementations§

§

impl<'a> Freeze for GraphView<'a>

§

impl<'a> RefUnwindSafe for GraphView<'a>

§

impl<'a> Send for GraphView<'a>

§

impl<'a> Sync for GraphView<'a>

§

impl<'a> Unpin for GraphView<'a>

§

impl<'a> UnsafeUnpin for GraphView<'a>

§

impl<'a> UnwindSafe for GraphView<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> ArchivePointee for T

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> LayoutRaw for T

Source§

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
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

Source§

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>>)

Writes data to out indicating that a T is niched.
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The metadata type for pointers and references to this type.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.