Documentation
// Copyright (c) 2026, Salesforce, Inc.,
// All rights reserved.
// For full license text, see the LICENSE.txt file

#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)]
pub struct GrpcCallId(u32);

impl GrpcCallId {
    pub(crate) fn new(token: u32) -> Self {
        Self(token)
    }

    pub fn token(&self) -> u32 {
        self.0
    }
}

pub struct GrpcCallResponse {
    pub call_id: GrpcCallId,
    pub status_code: u32,
    pub response_size: usize,
}

pub struct GrpcResponseParts {
    pub event: GrpcCallResponse,
    pub content: Option<Vec<u8>>,
    pub status: Option<String>,
}