use crate::{RegistryEntry, Service, ServiceError};
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum LogLevel {
Debug,
Info,
Warn,
Error,
}
pub trait GameAPI {
fn registry_domain(&self, name: &str) -> Result<Vec<RegistryEntry>, ServiceError>;
fn registry_file(&self, domain: &str, filename: &str) -> Result<Vec<u8>, ServiceError>;
fn register_service(
&mut self,
domain: &str,
service: Box<dyn Service>,
) -> Result<(), ServiceError>;
fn get_service(&self, domain: &str) -> Result<&dyn Service, ServiceError>;
fn has_service(&self, domain: &str) -> bool;
fn log(&self, level: LogLevel, message: &str);
}