macro_rules! transform_immutable_methods {
() => {
fn transform_immutable<U: 'static>(
&self,
transform_factory: impl Fn(&T) -> U + 'static,
) -> std::rc::Rc<dyn ferroui_system::IObservable<crate::cache::ChangeSet<U, K>>> {
let transform_factory: std::rc::Rc<dyn Fn(&T) -> Result<U, ferroui_system::ObservableError>> =
std::rc::Rc::new(move |current: &T| -> Result<U, ferroui_system::ObservableError> { Ok(transform_factory(current)) });
crate::cache::internal::transform_immutable(self.change_sets(), transform_factory)
}
fn try_transform_immutable<U: 'static>(
&self,
transform_factory: impl Fn(&T) -> Result<U, ferroui_system::ObservableError> + 'static,
) -> std::rc::Rc<dyn ferroui_system::IObservable<crate::cache::ChangeSet<U, K>>> {
crate::cache::internal::transform_immutable(self.change_sets(), std::rc::Rc::new(transform_factory))
}
};
}
pub(crate) use transform_immutable_methods;