Refactor context method

This commit is contained in:
Jeff 2024-09-03 06:08:34 -04:00
parent d6ab891d7f
commit bd76622543

View File

@ -444,23 +444,17 @@ impl ContextInner {
let found = self.update_position_if_found(identifier, position)?;
if found {
return Ok(true);
} else if let Some(parent) = &self.parent {
if let Some(parent) = parent.upgrade() {
let found_in_ancestor = parent.update_position_if_found(identifier, position)?;
if !found_in_ancestor {
Ok(true)
} else {
let mut associations = self.associations.write()?;
log::trace!("Updating {identifier}'s last position to {position:?}");
associations.insert(identifier.clone(), (ContextData::Reserved, position));
}
}
}
Ok(false)
}
}
fn update_position_if_found(
&self,
@ -474,11 +468,15 @@ impl ContextInner {
*last_position = position;
Ok(true)
} else {
Ok(false)
return Ok(true);
} else if let Some(parent) = &self.parent {
if let Some(parent) = parent.upgrade() {
return parent.update_position_if_found(identifier, position);
}
}
Ok(false)
}
}
#[derive(Debug, Clone)]