Skip to content

Commit 6c7c323

Browse files
committed
better Some() handling
1 parent a72fe77 commit 6c7c323

4 files changed

Lines changed: 34 additions & 55 deletions

File tree

lib/api/src/grpc/ops.rs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::grpc::HardwareUsage;
1+
use crate::grpc::{HardwareUsage, Usage};
22

33
impl HardwareUsage {
44
pub fn add(&mut self, other: Self) {
@@ -21,3 +21,16 @@ impl HardwareUsage {
2121
self.vector_io_write += vector_io_write;
2222
}
2323
}
24+
25+
impl Usage {
26+
pub fn is_empty(&self) -> bool {
27+
let Usage { hardware } = self;
28+
29+
hardware.is_none()
30+
}
31+
}
32+
33+
pub fn usage_or_none(hardware: Option<HardwareUsage>) -> Option<Usage> {
34+
let usage = Usage { hardware };
35+
if usage.is_empty() { None } else { Some(usage) }
36+
}

lib/api/src/grpc/proto/points_internal_service.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ message QueryResultInternal {
314314
message QueryBatchResponseInternal {
315315
repeated QueryResultInternal results = 1;
316316
double time = 2; // Time spent to process
317-
optional Usage usage = 5;
317+
optional HardwareUsage usage = 5;
318318
}
319319

320320
message FacetCountsInternal {

src/tonic/api/points_api.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::sync::Arc;
22
use std::time::{Duration, Instant};
33

4-
use api::grpc::Usage;
4+
use api::grpc::ops::usage_or_none;
55
use api::grpc::qdrant::points_server::Points;
66
use api::grpc::qdrant::{
77
ClearPayloadPoints, CountPoints, CountResponse, CreateFieldIndexCollection,
@@ -702,9 +702,7 @@ impl Points for PointsService {
702702
let pairs_response = SearchMatrixPairsResponse {
703703
result: Some(SearchMatrixPairs::from(search_matrix_response)),
704704
time: timing.elapsed().as_secs_f64(),
705-
usage: Some(Usage {
706-
hardware: hw_metrics.to_grpc_api(),
707-
}),
705+
usage: usage_or_none(hw_metrics.to_grpc_api()),
708706
};
709707

710708
Ok(Response::new(pairs_response))
@@ -730,9 +728,7 @@ impl Points for PointsService {
730728
let offsets_response = SearchMatrixOffsetsResponse {
731729
result: Some(SearchMatrixOffsets::from(search_matrix_response)),
732730
time: timing.elapsed().as_secs_f64(),
733-
usage: Some(Usage {
734-
hardware: hw_metrics.to_grpc_api(),
735-
}),
731+
usage: usage_or_none(hw_metrics.to_grpc_api()),
736732
};
737733

738734
Ok(Response::new(offsets_response))

src/tonic/api/query_common.rs

Lines changed: 16 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::time::{Duration, Instant};
22

33
use api::conversions::json::json_path_from_proto;
4-
use api::grpc::Usage;
4+
use api::grpc::ops::usage_or_none;
55
use api::grpc::qdrant::{
66
BatchResult, CoreSearchPoints, CountPoints, CountResponse, DiscoverBatchResponse,
77
DiscoverPoints, DiscoverResponse, FacetCounts, FacetResponse, GetPoints, GetResponse,
@@ -132,9 +132,7 @@ pub async fn search(
132132
.map(|point| point.into())
133133
.collect(),
134134
time: timing.elapsed().as_secs_f64(),
135-
usage: Some(Usage {
136-
hardware: hw_measurement_acc.to_grpc_api(),
137-
}),
135+
usage: usage_or_none(hw_measurement_acc.to_grpc_api()),
138136
};
139137

140138
Ok(Response::new(response))
@@ -182,9 +180,7 @@ pub async fn core_search_batch(
182180
})
183181
.collect(),
184182
time: timing.elapsed().as_secs_f64(),
185-
usage: Some(Usage {
186-
hardware: request_hw_counter.to_grpc_api(),
187-
}),
183+
usage: usage_or_none(request_hw_counter.to_grpc_api()),
188184
};
189185

190186
Ok(Response::new(response))
@@ -242,9 +238,7 @@ pub async fn core_search_list(
242238
})
243239
.collect(),
244240
time: timing.elapsed().as_secs_f64(),
245-
usage: Some(Usage {
246-
hardware: request_hw_counter.to_grpc_api(),
247-
}),
241+
usage: usage_or_none(request_hw_counter.to_grpc_api()),
248242
};
249243

250244
Ok(Response::new(response))
@@ -299,9 +293,7 @@ pub async fn search_groups(
299293
let response = SearchGroupsResponse {
300294
result: Some(groups_result),
301295
time: timing.elapsed().as_secs_f64(),
302-
usage: Some(Usage {
303-
hardware: request_hw_counter.to_grpc_api(),
304-
}),
296+
usage: usage_or_none(request_hw_counter.to_grpc_api()),
305297
};
306298

307299
Ok(Response::new(response))
@@ -354,9 +346,7 @@ pub async fn recommend(
354346
.map(|point| point.into())
355347
.collect(),
356348
time: timing.elapsed().as_secs_f64(),
357-
usage: Some(Usage {
358-
hardware: request_hw_counter.to_grpc_api(),
359-
}),
349+
usage: usage_or_none(request_hw_counter.to_grpc_api()),
360350
};
361351

362352
Ok(Response::new(response))
@@ -413,9 +403,7 @@ pub async fn recommend_batch(
413403
})
414404
.collect(),
415405
time: timing.elapsed().as_secs_f64(),
416-
usage: Some(Usage {
417-
hardware: request_hw_counter.to_grpc_api(),
418-
}),
406+
usage: usage_or_none(request_hw_counter.to_grpc_api()),
419407
};
420408

421409
Ok(Response::new(response))
@@ -469,9 +457,7 @@ pub async fn recommend_groups(
469457
let response = RecommendGroupsResponse {
470458
result: Some(groups_result),
471459
time: timing.elapsed().as_secs_f64(),
472-
usage: Some(Usage {
473-
hardware: request_hw_counter.to_grpc_api(),
474-
}),
460+
usage: usage_or_none(request_hw_counter.to_grpc_api()),
475461
};
476462

477463
Ok(Response::new(response))
@@ -517,9 +503,7 @@ pub async fn discover(
517503
.map(|point| point.into())
518504
.collect(),
519505
time: timing.elapsed().as_secs_f64(),
520-
usage: Some(Usage {
521-
hardware: request_hw_counter.to_grpc_api(),
522-
}),
506+
usage: usage_or_none(request_hw_counter.to_grpc_api()),
523507
};
524508

525509
Ok(Response::new(response))
@@ -575,9 +559,7 @@ pub async fn discover_batch(
575559
})
576560
.collect(),
577561
time: timing.elapsed().as_secs_f64(),
578-
usage: Some(Usage {
579-
hardware: request_hw_counter.to_grpc_api(),
580-
}),
562+
usage: usage_or_none(request_hw_counter.to_grpc_api()),
581563
};
582564

583565
Ok(Response::new(response))
@@ -656,9 +638,7 @@ pub async fn scroll(
656638
next_page_offset: scrolled_points.next_page_offset.map(|n| n.into()),
657639
result: points,
658640
time: timing.elapsed().as_secs_f64(),
659-
usage: Some(Usage {
660-
hardware: request_hw_counter.to_grpc_api(),
661-
}),
641+
usage: usage_or_none(request_hw_counter.to_grpc_api()),
662642
};
663643

664644
Ok(Response::new(response))
@@ -716,9 +696,7 @@ pub async fn count(
716696
let response = CountResponse {
717697
result: Some(count_result.into()),
718698
time: timing.elapsed().as_secs_f64(),
719-
usage: Some(Usage {
720-
hardware: request_hw_counter.to_grpc_api(),
721-
}),
699+
usage: usage_or_none(request_hw_counter.to_grpc_api()),
722700
};
723701

724702
Ok(Response::new(response))
@@ -783,9 +761,7 @@ pub async fn get(
783761
let response = GetResponse {
784762
result: records.into_iter().map(|point| point.into()).collect(),
785763
time: timing.elapsed().as_secs_f64(),
786-
usage: Some(Usage {
787-
hardware: request_hw_counter.to_grpc_api(),
788-
}),
764+
usage: usage_or_none(request_hw_counter.to_grpc_api()),
789765
};
790766

791767
Ok(Response::new(response))
@@ -840,9 +816,7 @@ pub async fn query(
840816
.map(|point| point.into())
841817
.collect(),
842818
time: timing.elapsed().as_secs_f64(),
843-
usage: Some(Usage {
844-
hardware: request_hw_counter.to_grpc_api(),
845-
}),
819+
usage: usage_or_none(request_hw_counter.to_grpc_api()),
846820
};
847821

848822
Ok(Response::new(response))
@@ -898,9 +872,7 @@ pub async fn query_batch(
898872
})
899873
.collect(),
900874
time: timing.elapsed().as_secs_f64(),
901-
usage: Some(Usage {
902-
hardware: request_hw_counter.to_grpc_api(),
903-
}),
875+
usage: usage_or_none(request_hw_counter.to_grpc_api()),
904876
};
905877

906878
Ok(Response::new(response))
@@ -955,9 +927,7 @@ pub async fn query_groups(
955927
let response = QueryGroupsResponse {
956928
result: Some(grpc_group_result),
957929
time: timing.elapsed().as_secs_f64(),
958-
usage: Some(Usage {
959-
hardware: request_hw_counter.to_grpc_api(),
960-
}),
930+
usage: usage_or_none(request_hw_counter.to_grpc_api()),
961931
};
962932

963933
Ok(Response::new(response))

0 commit comments

Comments
 (0)