Skip to main content

EdgeShardRead

Trait EdgeShardRead 

Source
pub trait EdgeShardRead: Sealed {
    // Required methods
    fn config_snapshot(&self) -> Arc<EdgeConfig>;
    fn path(&self) -> &Path;
    fn search(
        &self,
        request: SearchRequest,
    ) -> OperationResult<Vec<ScoredPoint>>;
    fn query(&self, request: QueryRequest) -> OperationResult<Vec<ScoredPoint>>;
    fn scroll(
        &self,
        request: ScrollRequest,
    ) -> OperationResult<(Vec<RecordInternal>, Option<ExtendedPointId>)>;
    fn retrieve(
        &self,
        request: RetrieveRequest,
    ) -> OperationResult<Vec<RecordInternal>>;
    fn count(&self, request: CountRequest) -> OperationResult<usize>;
    fn facet(&self, request: FacetRequest) -> OperationResult<FacetResponse>;
    fn search_matrix(
        &self,
        request: SearchMatrixRequest,
    ) -> OperationResult<SearchMatrixResponse>;
    fn query_groups(&self, request: GroupRequest) -> OperationResult<Vec<Group>>;
    fn info(&self) -> OperationResult<ShardInfo>;
}
Expand description

Read API shared by the read-write EdgeShard and the read-only follower shard.

Every method takes its edge request type from [crate::requests]; the blanket impl converts it into the internal request the read logic executes.

A shard only implements the crate-private snapshot provider; this trait comes for free through a blanket impl whose methods build an [EdgeReadView] from that snapshot and run the shared logic, so the read code is never duplicated and the snapshot plumbing stays invisible to crate users. Sealed: cannot be implemented outside the crate.

Required Methods§

Source

fn config_snapshot(&self) -> Arc<EdgeConfig>

Snapshot the current config.

Source

fn path(&self) -> &Path

Source

fn search(&self, request: SearchRequest) -> OperationResult<Vec<ScoredPoint>>

This method is DEPRECATED and should be replaced with query.

Source

fn query(&self, request: QueryRequest) -> OperationResult<Vec<ScoredPoint>>

Source

fn scroll( &self, request: ScrollRequest, ) -> OperationResult<(Vec<RecordInternal>, Option<ExtendedPointId>)>

Source

fn retrieve( &self, request: RetrieveRequest, ) -> OperationResult<Vec<RecordInternal>>

Source

fn count(&self, request: CountRequest) -> OperationResult<usize>

Source

fn facet(&self, request: FacetRequest) -> OperationResult<FacetResponse>

Source

fn search_matrix( &self, request: SearchMatrixRequest, ) -> OperationResult<SearchMatrixResponse>

Source

fn query_groups(&self, request: GroupRequest) -> OperationResult<Vec<Group>>

Source

fn info(&self) -> OperationResult<ShardInfo>

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§

Source§

impl<T: ReadViewProvider + ?Sized> EdgeShardRead for T