event_sourcing/
into_event_list.rs1use crate::Event;
2use alloc::vec;
3use alloc::vec::Vec;
4
5pub trait IntoEventList<T> {
7 fn into_list(self) -> Vec<Event<T>>;
8}
9
10impl<T> IntoEventList<T> for Vec<Event<T>> {
11 fn into_list(self) -> Vec<Event<T>> {
12 self
13 }
14}
15
16impl<T> IntoEventList<T> for Event<T> {
17 fn into_list(self) -> Vec<Event<T>> {
18 vec![self]
19 }
20}
21
22#[cfg(test)]
23mod tests {
24 use crate::{Event, IntoEventList};
25 use alloc::vec;
26
27 #[test]
28 fn init_list_should_work_for_vec() {
29 let data = vec![Event {
30 aggregate_id: Default::default(),
31 event_id: 0,
32 created_at: Default::default(),
33 user_id: None,
34 payload: (),
35 }];
36
37 let _ = data.into_list();
38 }
39
40 #[test]
41 fn init_list_should_work_for_single_event() {
42 let data = Event {
43 aggregate_id: Default::default(),
44 event_id: 0,
45 created_at: Default::default(),
46 user_id: None,
47 payload: (),
48 };
49
50 let _ = data.into_list();
51 }
52}