use sim_kernel::{ContentId, Result};
use crate::objects::{GatewayEvent, GatewayRequest, GatewayResponse, GatewayRun};
pub trait GatewayStore {
fn put_request(&mut self, id: ContentId, request: GatewayRequest) -> Result<()>;
fn request(&self, id: &ContentId) -> Option<GatewayRequest>;
fn put_run(&mut self, id: ContentId, run: GatewayRun) -> Result<()>;
fn run(&self, id: &ContentId) -> Option<GatewayRun>;
fn put_event(&mut self, id: ContentId, event: GatewayEvent) -> Result<()>;
fn event(&self, id: &ContentId) -> Option<GatewayEvent>;
fn put_response(&mut self, id: ContentId, response: GatewayResponse) -> Result<()>;
fn response(&self, id: &ContentId) -> Option<GatewayResponse>;
}