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§
Sourcefn config_snapshot(&self) -> Arc<EdgeConfig>
fn config_snapshot(&self) -> Arc<EdgeConfig>
Snapshot the current config.
fn path(&self) -> &Path
Sourcefn search(&self, request: SearchRequest) -> OperationResult<Vec<ScoredPoint>>
fn search(&self, request: SearchRequest) -> OperationResult<Vec<ScoredPoint>>
This method is DEPRECATED and should be replaced with query.
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>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".