use crate::common::event_attributes::GenericEventAttributes;
use crate::common::GenericMessage;
#[derive(Debug, Clone)]
pub enum GenericEventArgument<M, A> {
Message(M),
Attributes(A),
}
impl<C, M> From<GenericEventAttributes<C, M>>
for GenericEventArgument<M, GenericEventAttributes<C, M>>
{
fn from(value: GenericEventAttributes<C, M>) -> Self {
match value {
GenericEventAttributes {
category: None,
color: None,
message: Some(m),
payload: None,
} => GenericEventArgument::Message(m),
attr => GenericEventArgument::Attributes(attr),
}
}
}
impl<C, R, T: Into<GenericMessage<R>>> From<T>
for GenericEventArgument<GenericMessage<R>, GenericEventAttributes<C, GenericMessage<R>>>
{
fn from(value: T) -> Self {
GenericEventArgument::Message(value.into())
}
}