From d8e96a64118d33e09e3fcb124643b3eb37aa0d52 Mon Sep 17 00:00:00 2001 From: Kaede Hoshikawa Date: Sun, 20 Mar 2022 22:09:51 +0900 Subject: [PATCH] Strip Generics. --- packages/yew/src/html/component/lifecycle.rs | 16 +++++----- packages/yew/src/html/component/scope.rs | 32 ++++++++++---------- packages/yew/src/scheduler.rs | 24 +++++++-------- 3 files changed, 35 insertions(+), 37 deletions(-) diff --git a/packages/yew/src/html/component/lifecycle.rs b/packages/yew/src/html/component/lifecycle.rs index ae07712ee1a..92056f2a6f6 100644 --- a/packages/yew/src/html/component/lifecycle.rs +++ b/packages/yew/src/html/component/lifecycle.rs @@ -301,9 +301,9 @@ impl Runnable for UpdateRunner { if schedule_render { scheduler::push_component_render( state.comp_id, - RenderRunner { + Box::new(RenderRunner { state: self.state.clone(), - }, + }), ); // Only run from the scheduler, so no need to call `scheduler::start()` } @@ -377,9 +377,9 @@ impl RenderRunner { scheduler::push_component_render( state.comp_id, - RenderRunner { + Box::new(RenderRunner { state: shared_state, - }, + }), ); } else { // We schedule a render after current suspension is resumed. @@ -393,9 +393,9 @@ impl RenderRunner { suspension.listen(Callback::from(move |_| { scheduler::push_component_render( comp_id, - RenderRunner { + Box::new(RenderRunner { state: shared_state.clone(), - }, + }), ); scheduler::start(); })); @@ -442,10 +442,10 @@ impl RenderRunner { scheduler::push_component_rendered( state.comp_id, - RenderedRunner { + Box::new(RenderedRunner { state: self.state.clone(), first_render, - }, + }), first_render, ); } diff --git a/packages/yew/src/html/component/scope.rs b/packages/yew/src/html/component/scope.rs index bbcc0435e7c..04582114fb9 100644 --- a/packages/yew/src/html/component/scope.rs +++ b/packages/yew/src/html/component/scope.rs @@ -211,14 +211,14 @@ mod feat_ssr { scheduler::push_component_create( self.id, - CreateRunner { + Box::new(CreateRunner { initial_render_state: state, props, scope: self.clone(), - }, - RenderRunner { + }), + Box::new(RenderRunner { state: self.state.clone(), - }, + }), ); scheduler::start(); @@ -227,12 +227,12 @@ mod feat_ssr { let self_any_scope = AnyScope::from(self.clone()); html.render_to_string(w, &self_any_scope).await; - scheduler::push_component_destroy(DestroyRunner { + scheduler::push_component_destroy(Box::new(DestroyRunner { state: self.state.clone(), #[cfg(feature = "csr")] parent_to_detach: false, - }); + })); scheduler::start(); } } @@ -347,10 +347,10 @@ mod feat_csr_ssr { } pub(super) fn push_update(&self, event: UpdateEvent) { - scheduler::push_component_update(UpdateRunner { + scheduler::push_component_update(Box::new(UpdateRunner { state: self.state.clone(), event, - }); + })); // Not guaranteed to already have the scheduler started scheduler::start(); } @@ -418,14 +418,14 @@ mod feat_csr { scheduler::push_component_create( self.id, - CreateRunner { + Box::new(CreateRunner { initial_render_state: state, props, scope: self.clone(), - }, - RenderRunner { + }), + Box::new(RenderRunner { state: self.state.clone(), - }, + }), ); // Not guaranteed to already have the scheduler started scheduler::start(); @@ -473,10 +473,10 @@ mod feat_csr { /// Process an event to destroy a component fn destroy(self, parent_to_detach: bool) { - scheduler::push_component_destroy(DestroyRunner { + scheduler::push_component_destroy(Box::new(DestroyRunner { state: self.state, parent_to_detach, - }); + })); // Not guaranteed to already have the scheduler started scheduler::start(); } @@ -486,10 +486,10 @@ mod feat_csr { } fn shift_node(&self, parent: Element, next_sibling: NodeRef) { - scheduler::push_component_update(UpdateRunner { + scheduler::push_component_update(Box::new(UpdateRunner { state: self.state.clone(), event: UpdateEvent::Shift(parent, next_sibling), - }) + })) } } } diff --git a/packages/yew/src/scheduler.rs b/packages/yew/src/scheduler.rs index dda231c29cd..a3ec5459021 100644 --- a/packages/yew/src/scheduler.rs +++ b/packages/yew/src/scheduler.rs @@ -66,30 +66,30 @@ mod feat_csr_ssr { /// Push a component creation, first render and first rendered [Runnable]s to be executed pub(crate) fn push_component_create( component_id: usize, - create: impl Runnable + 'static, - first_render: impl Runnable + 'static, + create: Box, + first_render: Box, ) { with(|s| { - s.create.push(Box::new(create)); - s.render_first.insert(component_id, Box::new(first_render)); + s.create.push(create); + s.render_first.insert(component_id, first_render); }); } /// Push a component destruction [Runnable] to be executed - pub(crate) fn push_component_destroy(runnable: impl Runnable + 'static) { - with(|s| s.destroy.push(Box::new(runnable))); + pub(crate) fn push_component_destroy(runnable: Box) { + with(|s| s.destroy.push(runnable)); } /// Push a component render and rendered [Runnable]s to be executed - pub(crate) fn push_component_render(component_id: usize, render: impl Runnable + 'static) { + pub(crate) fn push_component_render(component_id: usize, render: Box) { with(|s| { - s.render.insert(component_id, Box::new(render)); + s.render.insert(component_id, render); }); } /// Push a component update [Runnable] to be executed - pub(crate) fn push_component_update(runnable: impl Runnable + 'static) { - with(|s| s.update.push(Box::new(runnable))); + pub(crate) fn push_component_update(runnable: Box) { + with(|s| s.update.push(runnable)); } } @@ -102,12 +102,10 @@ mod feat_csr { pub(crate) fn push_component_rendered( component_id: usize, - rendered: impl Runnable + 'static, + rendered: Box, first_render: bool, ) { with(|s| { - let rendered = Box::new(rendered); - if first_render { s.rendered_first.insert(component_id, rendered); } else {