Skip to main content

UnifiedSegment

Trait UnifiedSegment 

Source
pub trait UnifiedSegment: Send + Sync {
Show 19 methods // Required methods fn id(&self) -> u64; fn state(&self) -> SegmentState; fn collection(&self) -> &str; fn stats(&self) -> SegmentStats; fn entity_count(&self) -> usize; fn contains(&self, id: EntityId) -> bool; fn get(&self, id: EntityId) -> Option<&UnifiedEntity>; fn get_mut(&mut self, id: EntityId) -> Option<&mut UnifiedEntity>; fn insert( &mut self, entity: UnifiedEntity, ) -> Result<EntityId, SegmentError>; fn update(&mut self, entity: UnifiedEntity) -> Result<(), SegmentError>; fn delete(&mut self, id: EntityId) -> Result<bool, SegmentError>; fn get_metadata(&self, id: EntityId) -> Option<Metadata>; fn set_metadata( &mut self, id: EntityId, metadata: Metadata, ) -> Result<(), SegmentError>; fn seal(&mut self) -> Result<(), SegmentError>; fn should_seal(&self, config: &SegmentConfig) -> bool; fn iter(&self) -> Box<dyn Iterator<Item = &UnifiedEntity> + '_>; fn iter_kind( &self, kind_filter: &str, ) -> Box<dyn Iterator<Item = &UnifiedEntity> + '_>; fn filter_metadata( &self, filters: &[(String, MetadataFilter)], ) -> Vec<EntityId>; // Provided method fn update_hot( &mut self, entity: UnifiedEntity, modified_columns: &[String], ) -> Result<(), SegmentError> { ... }
}
Expand description

A unified segment that stores all entity types

Required Methods§

Source

fn id(&self) -> u64

Get segment ID

Source

fn state(&self) -> SegmentState

Get current state

Source

fn collection(&self) -> &str

Get collection/namespace name

Source

fn stats(&self) -> SegmentStats

Get statistics

Source

fn entity_count(&self) -> usize

O(1) live entity count (entities minus tombstones)

Source

fn contains(&self, id: EntityId) -> bool

Check if entity exists

Source

fn get(&self, id: EntityId) -> Option<&UnifiedEntity>

Get an entity by ID

Source

fn get_mut(&mut self, id: EntityId) -> Option<&mut UnifiedEntity>

Get mutable reference to entity

Source

fn insert(&mut self, entity: UnifiedEntity) -> Result<EntityId, SegmentError>

Insert a new entity

Source

fn update(&mut self, entity: UnifiedEntity) -> Result<(), SegmentError>

Update an existing entity

Source

fn delete(&mut self, id: EntityId) -> Result<bool, SegmentError>

Delete an entity

Source

fn get_metadata(&self, id: EntityId) -> Option<Metadata>

Get metadata for an entity

Source

fn set_metadata( &mut self, id: EntityId, metadata: Metadata, ) -> Result<(), SegmentError>

Set metadata for an entity

Source

fn seal(&mut self) -> Result<(), SegmentError>

Seal the segment (make immutable)

Source

fn should_seal(&self, config: &SegmentConfig) -> bool

Check if should auto-seal based on config

Source

fn iter(&self) -> Box<dyn Iterator<Item = &UnifiedEntity> + '_>

Iterate over all entities

Source

fn iter_kind( &self, kind_filter: &str, ) -> Box<dyn Iterator<Item = &UnifiedEntity> + '_>

Iterate over entities of a specific kind

Source

fn filter_metadata(&self, filters: &[(String, MetadataFilter)]) -> Vec<EntityId>

Search entities by metadata filter

Provided Methods§

Source

fn update_hot( &mut self, entity: UnifiedEntity, modified_columns: &[String], ) -> Result<(), SegmentError>

HOT-update: like update but receives the set of field names that actually changed. Allows skipping index work when indexed columns are unaffected. Default: falls back to full update.

Implementations on Foreign Types§

Source§

impl UnifiedSegment for Arc<RwLock<RawRwLock, GrowingSegment>>

Source§

fn id(&self) -> u64

Source§

fn state(&self) -> SegmentState

Source§

fn collection(&self) -> &str

Source§

fn stats(&self) -> SegmentStats

Source§

fn entity_count(&self) -> usize

Source§

fn contains(&self, id: EntityId) -> bool

Source§

fn get(&self, id: EntityId) -> Option<&UnifiedEntity>

Source§

fn get_mut(&mut self, _id: EntityId) -> Option<&mut UnifiedEntity>

Source§

fn insert(&mut self, entity: UnifiedEntity) -> Result<EntityId, SegmentError>

Source§

fn update(&mut self, entity: UnifiedEntity) -> Result<(), SegmentError>

Source§

fn update_hot( &mut self, entity: UnifiedEntity, modified_columns: &[String], ) -> Result<(), SegmentError>

Source§

fn delete(&mut self, id: EntityId) -> Result<bool, SegmentError>

Source§

fn get_metadata(&self, id: EntityId) -> Option<Metadata>

Source§

fn set_metadata( &mut self, id: EntityId, metadata: Metadata, ) -> Result<(), SegmentError>

Source§

fn seal(&mut self) -> Result<(), SegmentError>

Source§

fn should_seal(&self, config: &SegmentConfig) -> bool

Source§

fn iter(&self) -> Box<dyn Iterator<Item = &UnifiedEntity> + '_>

Source§

fn iter_kind( &self, _kind_filter: &str, ) -> Box<dyn Iterator<Item = &UnifiedEntity> + '_>

Source§

fn filter_metadata(&self, filters: &[(String, MetadataFilter)]) -> Vec<EntityId>

Implementors§