hermes-cli-framework 0.1.0

Implementation of an IBC Relayer in Rust, as a library
Documentation
mod log;

mod boot;
use std::path::Path;

pub use boot::boot;
use cgp::core::async_trait;
use hermes_runtime::types::runtime::HermesRuntime;

use crate::command::CommandRunner;
use crate::config::Config;
use crate::output::Output;
use crate::Result;

#[async_trait]
pub trait Application: Sized {
    type Config: Config;

    type App;

    type Command: CommandRunner<Self::App>;

    fn parse_from_env() -> Self;

    fn config_path(&self) -> &Path;

    fn json_output(&self) -> bool;

    async fn run(&self, runtime: HermesRuntime) -> Result<Output>;
}