fluvio_spu_schema/server/
update_offset.rs1use fluvio_protocol::api::Request;
6use fluvio_protocol::{Encoder, Decoder};
7use fluvio_protocol::record::Offset;
8
9use crate::errors::ErrorCode;
10use super::SpuServerApiKey;
11
12#[derive(Decoder, Encoder, Default, Debug)]
13pub struct OffsetUpdate {
14 pub offset: Offset,
15 pub session_id: u32,
16}
17
18#[derive(Decoder, Encoder, Default, Debug)]
20pub struct UpdateOffsetsRequest {
21 pub offsets: Vec<OffsetUpdate>,
22}
23
24impl Request for UpdateOffsetsRequest {
25 const API_KEY: u16 = SpuServerApiKey::UpdateOffsets as u16;
26 const DEFAULT_API_VERSION: i16 = 0;
27 type Response = UpdateOffsetsResponse;
28}
29
30impl UpdateOffsetsRequest {
31 pub fn new(offsets: Vec<OffsetUpdate>) -> Self {
32 Self { offsets }
33 }
34}
35
36#[derive(Decoder, Encoder, Default, Debug)]
37pub struct OffsetUpdateStatus {
38 pub session_id: u32,
39 pub error: ErrorCode,
40}
41
42#[derive(Encoder, Decoder, Default, Debug)]
43pub struct UpdateOffsetsResponse {
44 pub status: Vec<OffsetUpdateStatus>,
45}