Skip to main content

UnifiedSegment

Trait UnifiedSegment 

Source
pub trait UnifiedSegment: Send + Sync {
Show 19 methods // Required methods fn id(&self) -> SegmentId; 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) -> SegmentId

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.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl UnifiedSegment for Arc<RwLock<GrowingSegment>>

Source§

fn id(&self) -> SegmentId

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§