use {field, Metadata};
#[derive(Debug)]
pub struct Event<'a> {
fields: &'a field::ValueSet<'a>,
metadata: &'a Metadata<'a>,
}
impl<'a> Event<'a> {
#[inline]
pub fn dispatch(metadata: &'a Metadata<'a>, fields: &'a field::ValueSet) {
let event = Event { metadata, fields };
::dispatcher::get_default(|current| {
current.event(&event);
});
}
#[inline]
pub fn record(&self, visitor: &mut field::Visit) {
self.fields.record(visitor);
}
pub fn fields(&self) -> field::Iter {
self.fields.field_set().iter()
}
pub fn metadata(&self) -> &Metadata {
self.metadata
}
}