pub trait RuntimeQueryPort {
// Required methods
fn execute_query(
&self,
query: &str,
) -> Result<RuntimeQueryResult, RedDBError>;
fn explain_query(
&self,
query: &str,
) -> Result<RuntimeQueryExplain, RedDBError>;
fn scan_collection(
&self,
collection: &str,
cursor: Option<ScanCursor>,
limit: usize,
) -> Result<ScanPage, RedDBError>;
fn search_similar(
&self,
collection: &str,
vector: &[f32],
k: usize,
min_score: f32,
) -> Result<Vec<SimilarResult>, RedDBError>;
fn search_ivf(
&self,
collection: &str,
vector: &[f32],
k: usize,
n_lists: usize,
n_probes: Option<usize>,
) -> Result<RuntimeIvfSearchResult, RedDBError>;
fn search_hybrid(
&self,
vector: Option<Vec<f32>>,
query: Option<String>,
k: Option<usize>,
collections: Option<Vec<String>>,
entity_types: Option<Vec<String>>,
capabilities: Option<Vec<String>>,
graph_pattern: Option<RuntimeGraphPattern>,
filters: Vec<RuntimeFilter>,
weights: Option<RuntimeQueryWeights>,
min_score: Option<f32>,
limit: Option<usize>,
) -> Result<QueryResult, RedDBError>;
fn search_text(
&self,
query: String,
collections: Option<Vec<String>>,
entity_types: Option<Vec<String>>,
capabilities: Option<Vec<String>>,
fields: Option<Vec<String>>,
limit: Option<usize>,
fuzzy: bool,
) -> Result<QueryResult, RedDBError>;
fn search_multimodal(
&self,
query: String,
collections: Option<Vec<String>>,
entity_types: Option<Vec<String>>,
capabilities: Option<Vec<String>>,
limit: Option<usize>,
) -> Result<QueryResult, RedDBError>;
fn search_index(
&self,
index: String,
value: String,
exact: bool,
collections: Option<Vec<String>>,
entity_types: Option<Vec<String>>,
capabilities: Option<Vec<String>>,
limit: Option<usize>,
) -> Result<QueryResult, RedDBError>;
fn search_context(
&self,
input: SearchContextInput,
) -> Result<ContextSearchResult, RedDBError>;
fn resolve_semantic_api_key(
&self,
provider: &AiProvider,
) -> Result<String, RedDBError>;
fn enforce_ai_provider_policy(
&self,
provider: &AiProvider,
) -> Result<(), RedDBError>;
}Required Methods§
fn execute_query(&self, query: &str) -> Result<RuntimeQueryResult, RedDBError>
fn explain_query(&self, query: &str) -> Result<RuntimeQueryExplain, RedDBError>
fn scan_collection( &self, collection: &str, cursor: Option<ScanCursor>, limit: usize, ) -> Result<ScanPage, RedDBError>
fn search_similar( &self, collection: &str, vector: &[f32], k: usize, min_score: f32, ) -> Result<Vec<SimilarResult>, RedDBError>
fn search_ivf( &self, collection: &str, vector: &[f32], k: usize, n_lists: usize, n_probes: Option<usize>, ) -> Result<RuntimeIvfSearchResult, RedDBError>
fn search_hybrid( &self, vector: Option<Vec<f32>>, query: Option<String>, k: Option<usize>, collections: Option<Vec<String>>, entity_types: Option<Vec<String>>, capabilities: Option<Vec<String>>, graph_pattern: Option<RuntimeGraphPattern>, filters: Vec<RuntimeFilter>, weights: Option<RuntimeQueryWeights>, min_score: Option<f32>, limit: Option<usize>, ) -> Result<QueryResult, RedDBError>
fn search_text( &self, query: String, collections: Option<Vec<String>>, entity_types: Option<Vec<String>>, capabilities: Option<Vec<String>>, fields: Option<Vec<String>>, limit: Option<usize>, fuzzy: bool, ) -> Result<QueryResult, RedDBError>
fn search_multimodal( &self, query: String, collections: Option<Vec<String>>, entity_types: Option<Vec<String>>, capabilities: Option<Vec<String>>, limit: Option<usize>, ) -> Result<QueryResult, RedDBError>
fn search_index( &self, index: String, value: String, exact: bool, collections: Option<Vec<String>>, entity_types: Option<Vec<String>>, capabilities: Option<Vec<String>>, limit: Option<usize>, ) -> Result<QueryResult, RedDBError>
fn search_context( &self, input: SearchContextInput, ) -> Result<ContextSearchResult, RedDBError>
fn resolve_semantic_api_key( &self, provider: &AiProvider, ) -> Result<String, RedDBError>
Sourcefn enforce_ai_provider_policy(
&self,
provider: &AiProvider,
) -> Result<(), RedDBError>
fn enforce_ai_provider_policy( &self, provider: &AiProvider, ) -> Result<(), RedDBError>
Planner-level provider policy gate (#711, S3). Returns Ok(())
to proceed, Err when an explicit Deny matches. Default-allow
when no ai:provider:* policy is attached.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".