feat: update hyperlog
All checks were successful
continuous-integration/drone/push Build is passing

Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
2024-11-23 14:26:11 +01:00
parent ee0680194b
commit 34fba9754c
6 changed files with 77 additions and 25 deletions

View File

@@ -7,12 +7,10 @@ use crate::{
#[allow(dead_code)]
pub struct State {
engine: SharedEngine,
pub storage: Storage,
events: Events,
pub commander: Commander,
pub querier: Querier,
backend: Backend,
}
pub enum Backend {
@@ -22,19 +20,21 @@ pub enum Backend {
impl State {
pub async fn new(backend: Backend) -> anyhow::Result<Self> {
let storage = Storage::new();
let engine = storage.load()?;
let events = Events::default();
let engine = SharedEngine::from(engine);
let (querier, commander) = match backend {
Backend::Local => (
Querier::local(&engine),
Commander::local(engine.clone(), storage.clone(), events.clone())?,
),
let (querier, commander) = match &backend {
Backend::Local => {
let storage = Storage::new();
let engine = storage.load()?;
let events = Events::default();
let engine = SharedEngine::from(engine);
(
Querier::local(&engine),
Commander::local(engine.clone(), storage.clone(), events.clone())?,
)
}
Backend::Remote { url } => {
let channel = Channel::from_shared(url)?
.tls_config(ClientTlsConfig::new())?
let tls = ClientTlsConfig::new();
let channel = Channel::from_shared(url.clone())?
.tls_config(tls.with_native_roots())?
.connect()
.await?;
@@ -46,12 +46,25 @@ impl State {
};
Ok(Self {
engine: engine.clone(),
storage: storage.clone(),
events: events.clone(),
commander,
querier,
backend,
})
}
pub fn unlock(&self) {
if let Backend::Local = &self.backend {
let storage = Storage::new();
storage.clear_lock_file();
}
}
pub fn info(&self) -> Option<anyhow::Result<String>> {
if let Backend::Local = &self.backend {
let storage = Storage::new();
return Some(storage.info());
}
None
}
}