use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum IngestVia {
IngestEvents,
BundleApply,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct IngestProvenance {
pub via: IngestVia,
pub received_at: String,
}
pub(crate) fn stamp_ingest_provenance(
events: &[super::ShoreEvent],
via: IngestVia,
received_at: &str,
) -> Vec<super::ShoreEvent> {
events
.iter()
.cloned()
.map(|mut event| {
event.ingest = Some(IngestProvenance {
via,
received_at: received_at.to_owned(),
});
event
})
.collect()
}