qdrant_client/grpc_conversions/
mod.rs1mod extensions;
2pub mod metadata;
3mod primitives;
4pub mod vectors;
5
6use crate::payload::Payload;
7use crate::qdrant::point_id::PointIdOptions;
8use crate::qdrant::points_selector::PointsSelectorOneOf;
9use crate::qdrant::value::Kind;
10use crate::qdrant::{
11 alias_operations, condition, create_vector_name_request, group_id, points_update_operation,
12 quantization_config, quantization_config_diff, r#match, read_consistency, shard_key,
13 start_from, target_vector, update_collection_cluster_setup_request, vector_example,
14 vectors_config, vectors_config_diff, with_payload_selector, with_vectors_selector,
15 AbortShardTransfer, AbortShardTransferBuilder, AliasOperations, BinaryQuantization,
16 BinaryQuantizationBuilder, Condition, CreateAlias, CreateShardKey, DeleteAlias, DeleteShardKey,
17 DenseVectorCreationConfig, DenseVectorCreationConfigBuilder, Disabled, FieldCondition, Filter,
18 GeoLineString, GeoPoint, GroupId, HasIdCondition, IsEmptyCondition, IsNullCondition, ListValue,
19 Match, MoveShard, MoveShardBuilder, NestedCondition, PayloadExcludeSelector,
20 PayloadIncludeSelector, PointId, PointsIdsList, PointsSelector, PointsUpdateOperation,
21 ProductQuantization, ProductQuantizationBuilder, QuantizationConfig, QuantizationConfigDiff,
22 ReadConsistency, RenameAlias, Replica, ReplicateShard, ReplicateShardBuilder, RestartTransfer,
23 ScalarQuantization, ScalarQuantizationBuilder, ShardKey, ShardKeySelector, SparseIndexConfig,
24 SparseVectorCreationConfig, SparseVectorCreationConfigBuilder, SparseVectorParams, StartFrom,
25 Struct, TargetVector, TurboQuantization, TurboQuantizationBuilder, Value, Vector,
26 VectorExample, VectorParams, VectorParamsBuilder, VectorParamsDiff, VectorParamsDiffBuilder,
27 VectorParamsDiffMap, VectorParamsMap, VectorsConfig, VectorsConfigDiff, VectorsSelector,
28 WithPayloadSelector, WithVectorsSelector,
29};
30
31impl From<Vec<PointId>> for PointsSelector {
32 fn from(point_ids: Vec<PointId>) -> Self {
33 PointsSelector {
34 points_selector_one_of: Some(PointsSelectorOneOf::Points(PointsIdsList {
35 ids: point_ids,
36 })),
37 }
38 }
39}
40
41impl<T> From<Vec<T>> for Value
42where
43 T: Into<Value>,
44{
45 fn from(val: Vec<T>) -> Self {
46 Self {
47 kind: Some(Kind::ListValue(ListValue {
48 values: val.into_iter().map(|v| v.into()).collect(),
49 })),
50 }
51 }
52}
53
54impl From<Payload> for Value {
55 fn from(val: Payload) -> Self {
56 Self {
57 kind: Some(Kind::StructValue(Struct { fields: val.0 })),
58 }
59 }
60}
61
62impl From<shard_key::Key> for ShardKey {
63 fn from(key: shard_key::Key) -> Self {
64 ShardKey { key: Some(key) }
65 }
66}
67
68impl From<Vec<shard_key::Key>> for ShardKeySelector {
69 fn from(shard_keys: Vec<shard_key::Key>) -> Self {
70 ShardKeySelector {
71 shard_keys: shard_keys.into_iter().map(ShardKey::from).collect(),
72 fallback: None,
73 }
74 }
75}
76
77impl From<Vec<ShardKey>> for ShardKeySelector {
78 fn from(value: Vec<ShardKey>) -> Self {
79 Self {
80 shard_keys: value,
81 fallback: None,
82 }
83 }
84}
85
86impl From<vectors_config::Config> for VectorsConfig {
87 fn from(value: vectors_config::Config) -> Self {
88 VectorsConfig {
89 config: Some(value),
90 }
91 }
92}
93
94impl From<VectorParams> for vectors_config::Config {
95 fn from(value: VectorParams) -> Self {
96 Self::Params(value)
97 }
98}
99
100impl From<VectorParamsMap> for vectors_config::Config {
101 fn from(value: VectorParamsMap) -> Self {
102 Self::ParamsMap(value)
103 }
104}
105
106impl From<vectors_config_diff::Config> for VectorsConfigDiff {
107 fn from(value: vectors_config_diff::Config) -> Self {
108 Self {
109 config: Some(value),
110 }
111 }
112}
113
114impl From<VectorParamsDiff> for vectors_config_diff::Config {
115 fn from(value: VectorParamsDiff) -> Self {
116 Self::Params(value)
117 }
118}
119
120impl From<VectorParamsDiffMap> for vectors_config_diff::Config {
121 fn from(value: VectorParamsDiffMap) -> Self {
122 Self::ParamsMap(value)
123 }
124}
125
126impl From<SparseIndexConfig> for SparseVectorParams {
127 fn from(value: SparseIndexConfig) -> Self {
128 Self {
129 index: Some(value),
130 modifier: None,
131 }
132 }
133}
134
135impl From<quantization_config::Quantization> for QuantizationConfig {
136 fn from(value: quantization_config::Quantization) -> Self {
137 Self {
138 quantization: Some(value),
139 }
140 }
141}
142
143impl From<ScalarQuantization> for quantization_config::Quantization {
144 fn from(value: ScalarQuantization) -> Self {
145 Self::Scalar(value)
146 }
147}
148
149impl From<ProductQuantization> for quantization_config::Quantization {
150 fn from(value: ProductQuantization) -> Self {
151 Self::Product(value)
152 }
153}
154
155impl From<BinaryQuantization> for quantization_config::Quantization {
156 fn from(value: BinaryQuantization) -> Self {
157 Self::Binary(value)
158 }
159}
160
161impl From<TurboQuantization> for quantization_config::Quantization {
162 fn from(value: TurboQuantization) -> Self {
163 Self::Turboquant(value)
164 }
165}
166
167impl From<quantization_config_diff::Quantization> for QuantizationConfigDiff {
168 fn from(value: quantization_config_diff::Quantization) -> Self {
169 Self {
170 quantization: Some(value),
171 }
172 }
173}
174
175impl From<ScalarQuantization> for quantization_config_diff::Quantization {
176 fn from(value: ScalarQuantization) -> Self {
177 Self::Scalar(value)
178 }
179}
180
181impl From<ProductQuantization> for quantization_config_diff::Quantization {
182 fn from(value: ProductQuantization) -> Self {
183 Self::Product(value)
184 }
185}
186
187impl From<Disabled> for quantization_config_diff::Quantization {
188 fn from(value: Disabled) -> Self {
189 Self::Disabled(value)
190 }
191}
192
193impl From<BinaryQuantization> for quantization_config_diff::Quantization {
194 fn from(value: BinaryQuantization) -> Self {
195 Self::Binary(value)
196 }
197}
198
199impl From<TurboQuantization> for quantization_config_diff::Quantization {
200 fn from(value: TurboQuantization) -> Self {
201 Self::Turboquant(value)
202 }
203}
204
205impl From<DenseVectorCreationConfig> for create_vector_name_request::VectorConfig {
206 fn from(value: DenseVectorCreationConfig) -> Self {
207 Self::DenseConfig(value)
208 }
209}
210
211impl From<SparseVectorCreationConfig> for create_vector_name_request::VectorConfig {
212 fn from(value: SparseVectorCreationConfig) -> Self {
213 Self::SparseConfig(value)
214 }
215}
216
217impl From<DenseVectorCreationConfigBuilder> for create_vector_name_request::VectorConfig {
218 fn from(value: DenseVectorCreationConfigBuilder) -> Self {
219 Self::DenseConfig(value.build())
220 }
221}
222
223impl From<SparseVectorCreationConfigBuilder> for create_vector_name_request::VectorConfig {
224 fn from(value: SparseVectorCreationConfigBuilder) -> Self {
225 Self::SparseConfig(value.build())
226 }
227}
228
229impl From<alias_operations::Action> for AliasOperations {
230 fn from(value: alias_operations::Action) -> Self {
231 AliasOperations {
232 action: Some(value),
233 }
234 }
235}
236
237impl From<CreateAlias> for alias_operations::Action {
238 fn from(value: CreateAlias) -> Self {
239 Self::CreateAlias(value)
240 }
241}
242
243impl From<RenameAlias> for alias_operations::Action {
244 fn from(value: RenameAlias) -> Self {
245 Self::RenameAlias(value)
246 }
247}
248
249impl From<DeleteAlias> for alias_operations::Action {
250 fn from(value: DeleteAlias) -> Self {
251 Self::DeleteAlias(value)
252 }
253}
254
255impl From<Kind> for Value {
256 fn from(value: Kind) -> Self {
257 Self { kind: Some(value) }
258 }
259}
260
261impl From<Vec<Value>> for ListValue {
262 fn from(value: Vec<Value>) -> Self {
263 Self { values: value }
264 }
265}
266
267impl From<read_consistency::Value> for ReadConsistency {
268 fn from(value: read_consistency::Value) -> Self {
269 Self { value: Some(value) }
270 }
271}
272
273impl From<PointIdOptions> for PointId {
274 fn from(value: PointIdOptions) -> Self {
275 Self {
276 point_id_options: Some(value),
277 }
278 }
279}
280
281impl From<with_payload_selector::SelectorOptions> for WithPayloadSelector {
282 fn from(value: with_payload_selector::SelectorOptions) -> Self {
283 Self {
284 selector_options: Some(value),
285 }
286 }
287}
288
289impl From<PayloadIncludeSelector> for with_payload_selector::SelectorOptions {
290 fn from(value: PayloadIncludeSelector) -> Self {
291 Self::Include(value)
292 }
293}
294
295impl From<PayloadExcludeSelector> for with_payload_selector::SelectorOptions {
296 fn from(value: PayloadExcludeSelector) -> Self {
297 Self::Exclude(value)
298 }
299}
300
301impl From<with_vectors_selector::SelectorOptions> for WithVectorsSelector {
302 fn from(value: with_vectors_selector::SelectorOptions) -> Self {
303 Self {
304 selector_options: Some(value),
305 }
306 }
307}
308
309impl From<VectorsSelector> for with_vectors_selector::SelectorOptions {
310 fn from(value: VectorsSelector) -> Self {
311 Self::Include(value)
312 }
313}
314
315impl From<start_from::Value> for StartFrom {
316 fn from(value: start_from::Value) -> Self {
317 Self { value: Some(value) }
318 }
319}
320
321impl From<target_vector::Target> for TargetVector {
322 fn from(value: target_vector::Target) -> Self {
323 Self {
324 target: Some(value),
325 }
326 }
327}
328
329impl From<VectorExample> for target_vector::Target {
330 fn from(value: VectorExample) -> Self {
331 Self::Single(value)
332 }
333}
334
335impl From<vector_example::Example> for VectorExample {
336 fn from(value: vector_example::Example) -> Self {
337 Self {
338 example: Some(value),
339 }
340 }
341}
342
343impl From<PointId> for vector_example::Example {
344 fn from(value: PointId) -> Self {
345 Self::Id(value)
346 }
347}
348
349impl From<Vector> for vector_example::Example {
350 fn from(value: Vector) -> Self {
351 Self::Vector(value)
352 }
353}
354
355impl From<points_update_operation::Operation> for PointsUpdateOperation {
356 fn from(value: points_update_operation::Operation) -> Self {
357 Self {
358 operation: Some(value),
359 }
360 }
361}
362
363impl From<group_id::Kind> for GroupId {
364 fn from(value: group_id::Kind) -> Self {
365 Self { kind: Some(value) }
366 }
367}
368
369impl From<condition::ConditionOneOf> for Condition {
370 fn from(value: condition::ConditionOneOf) -> Self {
371 Self {
372 condition_one_of: Some(value),
373 }
374 }
375}
376
377impl From<FieldCondition> for condition::ConditionOneOf {
378 fn from(value: FieldCondition) -> Self {
379 Self::Field(value)
380 }
381}
382
383impl From<IsEmptyCondition> for condition::ConditionOneOf {
384 fn from(value: IsEmptyCondition) -> Self {
385 Self::IsEmpty(value)
386 }
387}
388
389impl From<HasIdCondition> for condition::ConditionOneOf {
390 fn from(value: HasIdCondition) -> Self {
391 Self::HasId(value)
392 }
393}
394
395impl From<Filter> for condition::ConditionOneOf {
396 fn from(value: Filter) -> Self {
397 Self::Filter(value)
398 }
399}
400
401impl From<IsNullCondition> for condition::ConditionOneOf {
402 fn from(value: IsNullCondition) -> Self {
403 Self::IsNull(value)
404 }
405}
406
407impl From<NestedCondition> for condition::ConditionOneOf {
408 fn from(value: NestedCondition) -> Self {
409 Self::Nested(value)
410 }
411}
412
413impl From<Vec<PointId>> for HasIdCondition {
414 fn from(value: Vec<PointId>) -> Self {
415 Self { has_id: value }
416 }
417}
418
419impl From<r#match::MatchValue> for Match {
420 fn from(value: r#match::MatchValue) -> Self {
421 Self {
422 match_value: Some(value),
423 }
424 }
425}
426
427impl From<Vec<GeoPoint>> for GeoLineString {
428 fn from(value: Vec<GeoPoint>) -> Self {
429 Self { points: value }
430 }
431}
432
433impl From<PointsSelectorOneOf> for PointsSelector {
434 fn from(value: PointsSelectorOneOf) -> Self {
435 Self {
436 points_selector_one_of: Some(value),
437 }
438 }
439}
440
441impl From<Filter> for PointsSelectorOneOf {
442 fn from(value: Filter) -> Self {
443 Self::Filter(value)
444 }
445}
446
447impl<I: Into<PointId>, const N: usize> From<[I; N]> for PointsIdsList {
448 fn from(value: [I; N]) -> Self {
449 let ids: Vec<_> = value.into_iter().map(|i| i.into()).collect();
450 Self { ids }
451 }
452}
453
454impl<I: Into<PointId>> From<Vec<I>> for PointsIdsList {
455 fn from(value: Vec<I>) -> Self {
456 let ids: Vec<_> = value.into_iter().map(|i| i.into()).collect();
457 Self { ids }
458 }
459}
460
461impl<I: Into<PointsIdsList>> From<I> for PointsSelectorOneOf {
462 fn from(value: I) -> Self {
463 Self::Points(value.into())
464 }
465}
466
467impl From<VectorParamsDiffBuilder> for vectors_config_diff::Config {
468 fn from(value: VectorParamsDiffBuilder) -> Self {
469 value.build().into()
470 }
471}
472
473impl From<VectorParamsBuilder> for vectors_config::Config {
474 fn from(value: VectorParamsBuilder) -> Self {
475 value.build().into()
476 }
477}
478
479impl From<ScalarQuantizationBuilder> for quantization_config_diff::Quantization {
480 fn from(value: ScalarQuantizationBuilder) -> Self {
481 Self::Scalar(value.build())
482 }
483}
484
485impl From<ProductQuantizationBuilder> for quantization_config_diff::Quantization {
486 fn from(value: ProductQuantizationBuilder) -> Self {
487 Self::Product(value.build())
488 }
489}
490
491impl From<BinaryQuantizationBuilder> for quantization_config_diff::Quantization {
492 fn from(value: BinaryQuantizationBuilder) -> Self {
493 Self::Binary(value.build())
494 }
495}
496
497impl From<TurboQuantizationBuilder> for quantization_config_diff::Quantization {
498 fn from(value: TurboQuantizationBuilder) -> Self {
499 Self::Turboquant(value.build())
500 }
501}
502
503impl From<ScalarQuantizationBuilder> for quantization_config::Quantization {
504 fn from(value: ScalarQuantizationBuilder) -> Self {
505 Self::Scalar(value.build())
506 }
507}
508
509impl From<ProductQuantizationBuilder> for quantization_config::Quantization {
510 fn from(value: ProductQuantizationBuilder) -> Self {
511 Self::Product(value.build())
512 }
513}
514
515impl From<BinaryQuantizationBuilder> for quantization_config::Quantization {
516 fn from(value: BinaryQuantizationBuilder) -> Self {
517 Self::Binary(value.build())
518 }
519}
520
521impl From<TurboQuantizationBuilder> for quantization_config::Quantization {
522 fn from(value: TurboQuantizationBuilder) -> Self {
523 Self::Turboquant(value.build())
524 }
525}
526
527impl From<points_update_operation::PointStructList> for points_update_operation::Operation {
528 fn from(value: points_update_operation::PointStructList) -> Self {
529 Self::Upsert(value)
530 }
531}
532
533impl From<points_update_operation::SetPayload> for points_update_operation::Operation {
534 fn from(value: points_update_operation::SetPayload) -> Self {
535 Self::SetPayload(value)
536 }
537}
538
539impl From<points_update_operation::OverwritePayload> for points_update_operation::Operation {
540 fn from(value: points_update_operation::OverwritePayload) -> Self {
541 Self::OverwritePayload(value)
542 }
543}
544
545impl From<points_update_operation::DeletePayload> for points_update_operation::Operation {
546 fn from(value: points_update_operation::DeletePayload) -> Self {
547 Self::DeletePayload(value)
548 }
549}
550
551impl From<points_update_operation::UpdateVectors> for points_update_operation::Operation {
552 fn from(value: points_update_operation::UpdateVectors) -> Self {
553 Self::UpdateVectors(value)
554 }
555}
556
557impl From<points_update_operation::DeleteVectors> for points_update_operation::Operation {
558 fn from(value: points_update_operation::DeleteVectors) -> Self {
559 Self::DeleteVectors(value)
560 }
561}
562
563impl From<points_update_operation::DeletePoints> for points_update_operation::Operation {
564 fn from(value: points_update_operation::DeletePoints) -> Self {
565 Self::DeletePoints(value)
566 }
567}
568
569impl From<points_update_operation::ClearPayload> for points_update_operation::Operation {
570 fn from(value: points_update_operation::ClearPayload) -> Self {
571 Self::ClearPayload(value)
572 }
573}
574
575impl From<MoveShard> for update_collection_cluster_setup_request::Operation {
576 fn from(value: MoveShard) -> Self {
577 Self::MoveShard(value)
578 }
579}
580
581impl From<MoveShardBuilder> for update_collection_cluster_setup_request::Operation {
582 fn from(value: MoveShardBuilder) -> Self {
583 Self::MoveShard(value.build())
584 }
585}
586
587impl From<ReplicateShard> for update_collection_cluster_setup_request::Operation {
588 fn from(value: ReplicateShard) -> Self {
589 Self::ReplicateShard(value)
590 }
591}
592
593impl From<ReplicateShardBuilder> for update_collection_cluster_setup_request::Operation {
594 fn from(value: ReplicateShardBuilder) -> Self {
595 Self::ReplicateShard(value.build())
596 }
597}
598
599impl From<AbortShardTransfer> for update_collection_cluster_setup_request::Operation {
600 fn from(value: AbortShardTransfer) -> Self {
601 Self::AbortTransfer(value)
602 }
603}
604
605impl From<AbortShardTransferBuilder> for update_collection_cluster_setup_request::Operation {
606 fn from(value: AbortShardTransferBuilder) -> Self {
607 Self::AbortTransfer(value.build())
608 }
609}
610
611impl From<Replica> for update_collection_cluster_setup_request::Operation {
612 fn from(value: Replica) -> Self {
613 Self::DropReplica(value)
614 }
615}
616
617impl From<CreateShardKey> for update_collection_cluster_setup_request::Operation {
618 fn from(value: CreateShardKey) -> Self {
619 Self::CreateShardKey(value)
620 }
621}
622
623impl From<DeleteShardKey> for update_collection_cluster_setup_request::Operation {
624 fn from(value: DeleteShardKey) -> Self {
625 Self::DeleteShardKey(value)
626 }
627}
628
629impl From<RestartTransfer> for update_collection_cluster_setup_request::Operation {
630 fn from(value: RestartTransfer) -> Self {
631 Self::RestartTransfer(value)
632 }
633}