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