mod custom;
mod resource;
mod view;
use serde_json::Value;
use crate::context::RumContextSnapshot;
pub use custom::{
CustomEvent, CustomException, CustomLog, CustomLogLevel, CustomResource,
CustomResourceMeasuring, CustomResourceType,
};
pub(crate) use custom::{CustomEventData, CustomExceptionEvent};
pub(crate) use resource::{PendingResource, ResourceEvent};
pub(crate) use view::ViewEvent;
#[derive(Clone, Debug)]
pub(crate) enum RumEvent {
Custom(CustomEventData),
Exception(CustomExceptionEvent),
Resource(Box<ResourceEvent>),
View(ViewEvent),
}
impl RumEvent {
pub fn context(&self) -> &RumContextSnapshot {
match self {
Self::Custom(event) => &event.context,
Self::Exception(event) => &event.context,
Self::Resource(event) => &event.context,
Self::View(event) => &event.context,
}
}
pub fn to_json(&self) -> Value {
match self {
Self::Custom(event) => event.to_json(),
Self::Exception(event) => event.to_json(),
Self::Resource(event) => event.to_json(),
Self::View(event) => event.to_json(),
}
}
}