Skip to main content

PropertyStorage

Struct PropertyStorage 

Source
pub struct PropertyStorage<Id: EntityId = NodeId> { /* private fields */ }
Expand description

Columnar property storage.

Properties are stored in a columnar format where each property key has its own column. This enables efficient filtering and scanning of specific properties across many entities.

Generic over the entity ID type (NodeId or EdgeId).

Implementations§

Source§

impl<Id: EntityId> PropertyStorage<Id>

Source

pub fn new() -> Self

Creates a new property storage.

Source

pub fn set(&self, id: Id, key: PropertyKey, value: Value)

Sets a property value for an entity.

Source

pub fn get(&self, id: Id, key: &PropertyKey) -> Option<Value>

Gets a property value for an entity.

Source

pub fn remove(&self, id: Id, key: &PropertyKey) -> Option<Value>

Removes a property value for an entity.

Source

pub fn remove_all(&self, id: Id)

Removes all properties for an entity.

Source

pub fn get_all(&self, id: Id) -> FxHashMap<PropertyKey, Value>

Gets all properties for an entity.

Source

pub fn column_count(&self) -> usize

Returns the number of property columns.

Source

pub fn keys(&self) -> Vec<PropertyKey>

Returns the keys of all columns.

Source

pub fn column(&self, key: &PropertyKey) -> Option<PropertyColumnRef<'_, Id>>

Gets a column by key for bulk access.

Source

pub fn might_match( &self, key: &PropertyKey, op: CompareOp, value: &Value, ) -> bool

Checks if a predicate on a property might match any values.

Returns true if the property column might contain matching values, false if it definitely doesn’t. Returns true if the property doesn’t exist.

Source

pub fn zone_map(&self, key: &PropertyKey) -> Option<ZoneMapEntry>

Gets the zone map for a property column.

Source

pub fn rebuild_zone_maps(&self)

Rebuilds zone maps for all columns (call after bulk removes).

Trait Implementations§

Source§

impl<Id: EntityId> Default for PropertyStorage<Id>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<Id = NodeId> !Freeze for PropertyStorage<Id>

§

impl<Id = NodeId> !RefUnwindSafe for PropertyStorage<Id>

§

impl<Id> Send for PropertyStorage<Id>
where Id: Send,

§

impl<Id> Sync for PropertyStorage<Id>
where Id: Sync + Send,

§

impl<Id> Unpin for PropertyStorage<Id>
where Id: Unpin,

§

impl<Id> UnwindSafe for PropertyStorage<Id>
where Id: UnwindSafe,

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> 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

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

Source§

type Error = Infallible

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.