use crate::scope::{NativeScopePop, NativeScopeToken};
use crate::ui::Ui;
#[must_use]
#[doc(alias = "TreePop")]
pub struct TreeNodeToken<'ui> {
scope: Option<NativeScopeToken<'ui>>,
}
impl<'ui> TreeNodeToken<'ui> {
pub(super) fn new(ui: &'ui Ui) -> Self {
Self {
scope: Some(ui.begin_native_scope(NativeScopePop::TreePop, "TreeNodeToken")),
}
}
pub(super) fn from_tree_node(ui: &'ui Ui, pop_tree_node: bool) -> Self {
Self {
scope: pop_tree_node
.then(|| ui.begin_native_scope(NativeScopePop::TreePop, "TreeNodeToken")),
}
}
pub fn pop(self) {
}
}
impl Drop for TreeNodeToken<'_> {
fn drop(&mut self) {
if let Some(scope) = &mut self.scope {
scope.finish();
}
}
}