use super::{ChangeSet, IConnectableCache, IObservableCache};
use std::hash::Hash;
use std::rc::Rc;
pub trait SourceCacheEx<T: Clone + 'static, K: Eq + Hash + Clone + 'static>: IObservableCache<T, K> {
fn cast_cache<U: Clone + 'static>(&self, converter: impl Fn(&T) -> U + 'static) -> Rc<dyn ferroui_system::IObservable<ChangeSet<U, K>>> {
super::internal::cast(IConnectableCache::connect(self), Rc::new(converter))
}
super::ops::add_or_update::add_or_update_source_methods!();
super::ops::clear::clear_source_methods!();
super::ops::defer_until_loaded::defer_until_loaded_source_methods!();
super::ops::edit_diff::edit_diff_source_methods!();
super::ops::expire_after::expire_after_source_methods!();
super::ops::limit_size_to::limit_size_to_source_methods!();
super::ops::populate_from::populate_from_source_methods!();
super::ops::refresh::refresh_source_methods!();
super::ops::remove::remove_source_methods!();
super::ops::remove_key::remove_key_source_methods!();
super::ops::remove_keys::remove_keys_source_methods!();
super::ops::watch_value::watch_value_source_methods!();
}
impl<T: Clone + 'static, K: Eq + Hash + Clone + 'static, C: IObservableCache<T, K> + ?Sized> SourceCacheEx<T, K> for C {}