use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct ClientMetadataQuery {
pub v: u32,
#[serde(default, skip_serializing_if = "is_false")]
pub with_metadata_only: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user_id: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub after_client_id: Option<u32>,
pub limit: u32,
}
fn is_false(value: &bool) -> bool {
!*value
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct ClientMetadata {
pub client_id: u32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user_id: Option<u32>,
pub transport: u8,
pub address: String,
pub consumer_groups_count: u32,
#[serde(
default,
skip_serializing_if = "Option::is_none",
with = "crate::encoding::opt_bin_bytes"
)]
pub metadata: Option<Vec<u8>>,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct ClientMetadataList {
pub clients: Vec<ClientMetadata>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub next_cursor: Option<u32>,
}