1use runx_contracts::{ExecutionEvent, ResolutionRequest, ResolutionResponse};
2
3use crate::RuntimeError;
4
5pub trait Host {
6 fn report(&mut self, event: ExecutionEvent) -> Result<(), RuntimeError>;
7
8 fn resolve(
9 &mut self,
10 _request: ResolutionRequest,
11 ) -> Result<Option<ResolutionResponse>, RuntimeError> {
12 Ok(None)
13 }
14
15 fn log(&mut self, _message: String) -> Result<(), RuntimeError> {
16 Ok(())
17 }
18}
19
20#[derive(Default)]
21pub struct NoopHost;
22
23impl Host for NoopHost {
24 fn report(&mut self, _event: ExecutionEvent) -> Result<(), RuntimeError> {
25 Ok(())
26 }
27}