vector/sinks/util/
processed_event.rs1use serde::Serialize;
2use vector_lib::{
3 event::{EventFinalizers, Finalizable, LogEvent, MaybeAsLogMut},
4 ByteSizeOf, EstimatedJsonEncodedSizeOf,
5};
6use vector_lib::{
7 internal_event::TaggedEventsSent, json_size::JsonSize, request_metadata::GetEventCountTags,
8};
9
10#[derive(Serialize)]
13pub struct ProcessedEvent<E, M> {
14 pub event: E,
15 pub metadata: M,
16}
17
18impl<E, M> MaybeAsLogMut for ProcessedEvent<E, M>
19where
20 E: MaybeAsLogMut,
21{
22 fn maybe_as_log_mut(&mut self) -> Option<&mut LogEvent> {
23 self.event.maybe_as_log_mut()
24 }
25}
26
27impl<E, M> Finalizable for ProcessedEvent<E, M>
28where
29 E: Finalizable,
30{
31 fn take_finalizers(&mut self) -> EventFinalizers {
32 self.event.take_finalizers()
33 }
34}
35
36impl<E, M> ByteSizeOf for ProcessedEvent<E, M>
37where
38 E: ByteSizeOf,
39 M: ByteSizeOf,
40{
41 fn allocated_bytes(&self) -> usize {
42 self.event.allocated_bytes() + self.metadata.allocated_bytes()
43 }
44}
45
46impl<E, M> EstimatedJsonEncodedSizeOf for ProcessedEvent<E, M>
47where
48 E: EstimatedJsonEncodedSizeOf,
49{
50 fn estimated_json_encoded_size_of(&self) -> JsonSize {
51 self.event.estimated_json_encoded_size_of()
52 }
53}
54
55impl<E, M> GetEventCountTags for ProcessedEvent<E, M>
56where
57 E: GetEventCountTags,
58{
59 fn get_tags(&self) -> TaggedEventsSent {
60 self.event.get_tags()
61 }
62}