Skip to main content

RuntimeAppLoadService

Trait RuntimeAppLoadService 

Source
pub trait RuntimeAppLoadService:
    Clone
    + Send
    + Sync
    + 'static {
    // Required methods
    fn read_source_manifest_value(
        &self,
        app_root: &Path,
    ) -> Result<Value, &'static str>;
    fn packaged_artifact_root_matches(
        &self,
        app_root: &Path,
        target_id: &str,
    ) -> bool;
    fn app_runtime_conf_required_present(&self, app_root: &Path) -> bool;
    fn resolve_build_dir_for_runtime_loading(
        &self,
        app_root: &Path,
        build_dir: &str,
        repo_root: Option<&Path>,
    ) -> PathBuf;
    fn load_app_runtime_from_artifact(
        &self,
        artifact_dir: &Path,
    ) -> Result<AppRuntime, &'static str>;
    fn initialize_missing_app_runtime_state(
        &self,
        app: &AppRuntime,
    ) -> Result<(), &'static str>;
    fn verify_app_migration_state(
        &self,
        app: &AppRuntime,
    ) -> Result<(), &'static str>;

    // Provided method
    fn log_startup_app_timing(&self, _timing: RuntimeAppStartupTiming) { ... }
}
Expand description

App loading services supplied by the root runtime while stack orchestration stays in the core crate.

Required Methods§

Source

fn read_source_manifest_value( &self, app_root: &Path, ) -> Result<Value, &'static str>

Source

fn packaged_artifact_root_matches( &self, app_root: &Path, target_id: &str, ) -> bool

Source

fn app_runtime_conf_required_present(&self, app_root: &Path) -> bool

Source

fn resolve_build_dir_for_runtime_loading( &self, app_root: &Path, build_dir: &str, repo_root: Option<&Path>, ) -> PathBuf

Source

fn load_app_runtime_from_artifact( &self, artifact_dir: &Path, ) -> Result<AppRuntime, &'static str>

Source

fn initialize_missing_app_runtime_state( &self, app: &AppRuntime, ) -> Result<(), &'static str>

Source

fn verify_app_migration_state( &self, app: &AppRuntime, ) -> Result<(), &'static str>

Provided Methods§

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§