fix async cycle

This commit is contained in:
Aiden McClelland
2024-03-07 14:57:41 -07:00
parent e0c9f8a5aa
commit 31ea0fe3fe

View File

@@ -1,7 +1,8 @@
use std::cmp::Ordering; use std::cmp::Ordering;
use color_eyre::eyre::eyre; use color_eyre::eyre::eyre;
use futures::Future; use futures::future::BoxFuture;
use futures::{Future, FutureExt};
use imbl_value::InternedString; use imbl_value::InternedString;
use crate::prelude::*; use crate::prelude::*;
@@ -86,11 +87,11 @@ where
} }
} }
} }
fn migrate_from_unchecked<V: VersionT>( fn migrate_from_unchecked<'a, V: VersionT>(
&self, &'a self,
version: &V, version: &'a V,
db: &PatchDb, db: &'a PatchDb,
) -> impl Future<Output = Result<(), Error>> + Send { ) -> BoxFuture<'a, Result<(), Error>> {
async { async {
let previous = Self::Previous::new(); let previous = Self::Previous::new();
if version.semver() < previous.semver() { if version.semver() < previous.semver() {
@@ -109,12 +110,13 @@ where
self.commit(db).await?; self.commit(db).await?;
Ok(()) Ok(())
} }
.boxed()
} }
fn rollback_to_unchecked<V: VersionT>( fn rollback_to_unchecked<'a, V: VersionT>(
&self, &'a self,
version: &V, version: &'a V,
db: &PatchDb, db: &'a PatchDb,
) -> impl Future<Output = Result<(), Error>> + Send { ) -> BoxFuture<'a, Result<(), Error>> {
async { async {
let previous = Self::Previous::new(); let previous = Self::Previous::new();
tracing::info!("{} -> {}", self.semver(), previous.semver(),); tracing::info!("{} -> {}", self.semver(), previous.semver(),);
@@ -133,6 +135,7 @@ where
} }
Ok(()) Ok(())
} }
.boxed()
} }
} }