refactor: extract current block info helper
This commit is contained in:
@@ -19,6 +19,12 @@ pub(crate) struct SelectionPayload {
|
||||
pub(crate) current_block_id: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||
pub(crate) struct CurrentBlockInfo {
|
||||
pub(crate) index: Option<usize>,
|
||||
pub(crate) block_id: Option<String>,
|
||||
}
|
||||
|
||||
pub(crate) fn node_is_within_root(node: Node, root: &Element) -> bool {
|
||||
let mut current = Some(node);
|
||||
while let Some(node) = current {
|
||||
@@ -187,3 +193,15 @@ pub(crate) fn selection_payload(
|
||||
current_block_id: current_block_index.and_then(runtime_block_id_from_index),
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn current_block_info_from_index(index: Option<usize>) -> CurrentBlockInfo {
|
||||
index
|
||||
.map(|value| CurrentBlockInfo {
|
||||
index: Some(value),
|
||||
block_id: runtime_block_id_from_index(value),
|
||||
})
|
||||
.unwrap_or(CurrentBlockInfo {
|
||||
index: None,
|
||||
block_id: None,
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user