eventify_primitives/networks/base/
log.rs

1use eyre::Result;
2
3use sqlx::{prelude::FromRow, Error as SqlError};
4use utoipa::ToSchema;
5
6use crate::{
7    networks::{core::CoreLog, NetworkKind},
8    traits::{Emit, Insert, Log, Stream},
9    PropagateError,
10};
11
12#[derive(
13    Clone,
14    Debug,
15    Default,
16    serde::Deserialize,
17    serde::Serialize,
18    PartialEq,
19    Eq,
20    Hash,
21    FromRow,
22    ToSchema,
23)]
24pub struct BaseLog {
25    #[serde(flatten)]
26    core: CoreLog,
27}
28
29impl Log for BaseLog {
30    fn core(&self) -> &CoreLog {
31        &self.core
32    }
33}
34
35impl Insert for BaseLog {
36    async fn insert(
37        &self,
38        pool: &sqlx::PgPool,
39        _: &Option<alloy_primitives::B256>,
40    ) -> Result<(), SqlError> {
41        self.core.insert(pool, NetworkKind::Base).await
42    }
43}
44
45impl Emit for BaseLog {
46    async fn emit(
47        &self,
48        queue: &redis::Client,
49        network: &crate::networks::NetworkKind,
50    ) -> eyre::Result<(), PropagateError> {
51        self.core.emit(queue, network).await
52    }
53}
54
55impl Stream for BaseLog {
56    async fn stream(
57        &self,
58        queue: &redis::Client,
59        network: &crate::networks::NetworkKind,
60    ) -> eyre::Result<(), PropagateError> {
61        self.core.stream(queue, network).await
62    }
63}