use crate::{Diff, StateMap};
use std::error::Error;
pub trait Remote<K, T>: Sync + Send {
fn fetch_updates(
&self,
update_id_current: u64,
update_id_new: u64,
hash: &[u8; 32],
) -> Result<Diff<K, T>, Box<dyn Error>>;
fn init(&self, statemap: &StateMap<K, T>) -> Result<(), Box<dyn Error>>;
}
pub trait EventBroadcaster: Sync + Send {
fn send_event(&self, encoded_event: Vec<u8>, hash: &[u8; 32]) -> Result<(), Box<dyn Error>>;
}
pub struct DummyRemote;
impl<K, T> Remote<K, T> for DummyRemote {
fn fetch_updates(
&self,
_update_id_current: u64,
_update_id_new: u64,
_hash: &[u8; 32],
) -> Result<crate::remote::Diff<K, T>, Box<dyn std::error::Error>> {
Ok(Diff::new([], false, 0, 0))
}
fn init(&self, _statemap: &StateMap<K, T>) -> Result<(), Box<dyn Error>> {
Ok(())
}
}
impl EventBroadcaster for DummyRemote {
fn send_event(&self, _encoded_event: Vec<u8>, _hash: &[u8; 32]) -> Result<(), Box<dyn Error>> {
Ok(())
}
}