use crate::{node::FromAnyValue, node_ref::AttributeMask, prelude::*};
pub trait NodeWatcher<V: FromAnyValue + Send + Sync> {
fn on_node_added(&mut self, _node: NodeMut<V>) {}
fn on_node_removed(&mut self, _node: NodeMut<V>) {}
fn on_node_moved(&mut self, _node: NodeMut<V>) {}
}
pub trait AttributeWatcher<V: FromAnyValue + Send + Sync> {
fn on_attributes_changed(&self, _node: NodeMut<V>, _attributes: &AttributeMask) {}
}