fix: handle EntityState::Updated state while persisting catalog

This commit is contained in:
2025-10-14 13:28:11 +02:00
parent 0cfeeb9134
commit 358a30f303

View File

@@ -69,13 +69,13 @@ pub fn run(path: &path::Path, catalog: &Catalog) -> result::Result<(), FailedTo>
let transaction = connection
.transaction()
.map_err(|_| sqlite::FailedTo::BeginTransaction)?;
for entity in catalog
.items
.values()
.filter(|item| item.state == EntityState::New || item.state == EntityState::ToDelete)
{
for entity in catalog.items.values().filter(|item| {
item.state == EntityState::New
|| item.state == EntityState::Updated
|| item.state == EntityState::ToDelete
}) {
match entity.state {
EntityState::New => write_entity(entity, &transaction)?,
EntityState::New | EntityState::Updated => write_entity(entity, &transaction)?,
EntityState::ToDelete => delete_entity(entity, &transaction)?,
_ => unreachable!(),
}