macro_rules! populate_from_source_methods {
() => {
fn populate_from(&self, observable: std::rc::Rc<dyn ferroui_system::IObservable<T>>) -> std::rc::Rc<dyn ferroui_system::IDisposable>
where
Self: crate::cache::ISourceCache<T, K> + Clone + Sized + 'static,
{
let source = self.clone();
ferroui_reactive::ObservableExt::subscribe_next(&observable, move |item: T| source.add_or_update(item))
}
fn populate_from_many<I: IntoIterator<Item = T> + 'static>(&self, observable: std::rc::Rc<dyn ferroui_system::IObservable<I>>) -> std::rc::Rc<dyn ferroui_system::IDisposable>
where
Self: crate::cache::ISourceCache<T, K> + Clone + Sized + 'static,
{
let source = self.clone();
ferroui_reactive::ObservableExt::subscribe_next(&observable, move |items: I| source.add_or_update_items(items))
}
};
}
pub(crate) use populate_from_source_methods;