diff --git a/src/types/event/mod.rs b/src/types/event/mod.rs index a384d20..50a09f4 100644 --- a/src/types/event/mod.rs +++ b/src/types/event/mod.rs @@ -128,3 +128,12 @@ impl fmt::Display for Event<'_> { } } } + +#[derive(Debug, Clone)] +pub struct OwnedEvent(pub Vec); + +impl OwnedEvent { + pub fn as_event(&self) -> Result, Error> { + Event::delineate(&self.0) + } +} diff --git a/src/types/filter/mod.rs b/src/types/filter/mod.rs index 0dedb54..0b52957 100644 --- a/src/types/filter/mod.rs +++ b/src/types/filter/mod.rs @@ -419,6 +419,15 @@ impl<'a> Iterator for FilterKindIter<'a> { } } +#[derive(Debug, Clone)] +pub struct OwnedFilter(pub Vec); + +impl OwnedFilter { + pub fn as_filter(&self) -> Result, Error> { + Filter::delineate(&self.0) + } +} + #[cfg(test)] mod test { use super::*; diff --git a/src/types/mod.rs b/src/types/mod.rs index 6797cff..a566988 100644 --- a/src/types/mod.rs +++ b/src/types/mod.rs @@ -1,8 +1,8 @@ mod event; -pub use event::Event; +pub use event::{Event, OwnedEvent}; mod filter; -pub use filter::Filter; +pub use filter::{Filter, OwnedFilter}; mod id; pub use id::Id;