feat(proto): request / response pair tracking by assigning id

This commit is contained in:
hdbg
2026-03-18 23:43:44 +01:00
committed by Stas
parent 60ce1cc110
commit 3e8b26418a
8 changed files with 259 additions and 118 deletions

View File

@@ -0,0 +1,20 @@
use tonic::Status;
#[derive(Default)]
pub struct RequestTracker {
next_request_id: i32,
}
impl RequestTracker {
pub fn request(&mut self, id: i32) -> Result<i32, Status> {
if id < self.next_request_id {
return Err(Status::invalid_argument("Duplicate request id"));
}
self.next_request_id = id
.checked_add(1)
.ok_or_else(|| Status::invalid_argument("Invalid request id"))?;
Ok(id)
}
}