use crate::engines::pubsub::Message;
use crate::util::Consumable;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Eq, PartialEq, Hash, Serialize, Deserialize)]
pub enum PubSubResponse {
Subscribe(PubSubSubscribeResponse),
}
#[derive(Debug, Clone, Eq, PartialEq, Hash, Serialize, Deserialize)]
pub struct PubSubSubscribeResponse {
request_id: ulid::Ulid,
message: Message,
}
impl PubSubSubscribeResponse {
pub fn new(request_id: ulid::Ulid, message: Message) -> Self {
Self {
request_id,
message,
}
}
pub fn request_id(&self) -> ulid::Ulid {
self.request_id
}
}
impl Consumable<Message> for PubSubSubscribeResponse {
fn consume(self) -> Message {
self.message
}
}