use serde::{Deserialize, Serialize};
use crate::{field_access, impl_default, impl_display};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct UnreadMsgsStream {
#[serde(skip_serializing_if = "Option::is_none")]
topic: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
stream_id: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
unread_message_ids: Option<Vec<i32>>,
}
impl UnreadMsgsStream {
pub const fn new() -> Self {
Self {
topic: None,
stream_id: None,
unread_message_ids: None,
}
}
}
field_access! {
UnreadMsgsStream {
topic: option_cow_deref { str, String },
unread_message_ids: option_cow_deref { [i32], Vec<i32> },
}
}
field_access! {
UnreadMsgsStream {
stream_id: option { i32 },
}
}
impl_default!(UnreadMsgsStream);
impl_display!(UnreadMsgsStream);