pub struct CuvsOperationDescriptor {
pub operation: CuvsOperation,
pub sql_function_name: &'static str,
pub display_name: &'static str,
pub summary: &'static str,
pub use_this_when: &'static str,
pub relation_roles: &'static [CuvsRelationRole],
pub vector_element_support: &'static [CuvsVectorElementSupport],
pub output_contract: CuvsOutputContract,
pub options: &'static [GpuOptionDefinition],
pub output_fields: &'static [GpuOutputFieldDefinition],
pub quickstart_sql: &'static str,
pub limitations: &'static [&'static str],
}Expand description
One operation entry drives SQL names, relation shape, option metadata, and output-schema selection. Keep operation-specific facts in this registry.
Fields§
§operation: CuvsOperationIdentity selecting this registry entry.
sql_function_name: &'static strCanonical table-function identifier.
display_name: &'static strHuman-readable function title; SQL names remain canonical identifiers.
summary: &'static strShort catalog summary.
use_this_when: &'static strConcrete selection guidance for the generated reference page.
relation_roles: &'static [CuvsRelationRole]Relation arguments, each passed as a parenthesized subquery; the SQL surface admits no other relation syntax.
vector_element_support: &'static [CuvsVectorElementSupport]Supported dense-vector element types for every relation binding.
output_contract: CuvsOutputContractResult-shape family used to construct the Arrow schema.
options: &'static [GpuOptionDefinition]Required options, accepted values, and defaults.
output_fields: &'static [GpuOutputFieldDefinition]Ordered output field metadata, including repeated-field templates.
quickstart_sql: &'static strGeneric SQL that demonstrates the real execution syntax beyond the metadata-validation envelope.
limitations: &'static [&'static str]Static and data-dependent lifecycle constraints that apply to this operation in addition to the common relation/validation contract.
Implementations§
Source§impl CuvsOperationDescriptor
impl CuvsOperationDescriptor
Sourcepub fn element_support(
&self,
element: VectorElementType,
) -> Option<&CuvsVectorElementSupport>
pub fn element_support( &self, element: VectorElementType, ) -> Option<&CuvsVectorElementSupport>
Returns supported metrics for element, or None when the element type is unsupported.
Sourcepub fn option(&self, name: &str) -> Option<&'static GpuOptionDefinition>
pub fn option(&self, name: &str) -> Option<&'static GpuOptionDefinition>
Looks up an exact option name; returns None if this operation has no such option.
Sourcepub fn options_json_schema(&self) -> Value
pub fn options_json_schema(&self) -> Value
Builds a draft 2020-12 JSON Schema for this operation’s options.
The schema includes defaults, supported relation element types, and required properties. Unknown properties are rejected; supported metric combinations are also included in the metric description.
Trait Implementations§
Source§impl Clone for CuvsOperationDescriptor
impl Clone for CuvsOperationDescriptor
Source§fn clone(&self) -> CuvsOperationDescriptor
fn clone(&self) -> CuvsOperationDescriptor
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for CuvsOperationDescriptor
Source§impl Debug for CuvsOperationDescriptor
impl Debug for CuvsOperationDescriptor
Source§impl PartialEq for CuvsOperationDescriptor
impl PartialEq for CuvsOperationDescriptor
impl StructuralPartialEq for CuvsOperationDescriptor
Auto Trait Implementations§
impl Freeze for CuvsOperationDescriptor
impl RefUnwindSafe for CuvsOperationDescriptor
impl Send for CuvsOperationDescriptor
impl Sync for CuvsOperationDescriptor
impl Unpin for CuvsOperationDescriptor
impl UnsafeUnpin for CuvsOperationDescriptor
impl UnwindSafe for CuvsOperationDescriptor
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request