macro_rules! adapt_methods {
() => {
fn adapt(&self, adaptor: std::rc::Rc<dyn crate::cache::IChangeSetAdaptor<T, K>>) -> std::rc::Rc<dyn ferroui_system::IObservable<crate::cache::ChangeSet<T, K>>> {
ferroui_reactive::ObservableExt::do_(&self.change_sets(), move |changes: &crate::cache::ChangeSet<T, K>| adaptor.adapt(changes))
}
fn adapt_sorted(&self, adaptor: std::rc::Rc<dyn crate::cache::ISortedChangeSetAdaptor<T, K>>) -> std::rc::Rc<dyn ferroui_system::IObservable<crate::cache::ChangeSet<T, K>>>
where
Self: Sized + 'static,
{
let sorted = ferroui_reactive::ObservableExt::do_(&crate::cache::internal::bind::expect_sorted_stream::<Self, T, K>(self), move |changes: &crate::cache::SortedChangeSet<T, K>| {
adaptor.adapt(changes)
});
ferroui_reactive::ObservableExt::select(&sorted, |changes: crate::cache::SortedChangeSet<T, K>| crate::cache::IChangeSet::change_set(&changes).clone())
}
};
}
pub(crate) use adapt_methods;