Return impl IntoElement from RenderOnce::render

This makes it a bit more approachable to implement.

This required converting the state of Component to AnyElement, which
costs an allocation. I'm hoping this will be ok performance-wise now
that AnyElements use bump allocation, but I need to benchmark still.
This commit is contained in:
Nathan Sobo 2024-01-02 10:27:09 -07:00
parent 1b5c8b2b4a
commit 68e7d99219
35 changed files with 74 additions and 183 deletions

View file

@ -1,4 +1,4 @@
use gpui::{relative, AnyElement, Div, Styled};
use gpui::{relative, AnyElement, Styled};
use smallvec::SmallVec;
use crate::prelude::*;
@ -76,9 +76,7 @@ impl ParentElement for LabelLike {
}
impl RenderOnce for LabelLike {
type Output = Div;
fn render(self, cx: &mut WindowContext) -> Self::Output {
fn render(self, cx: &mut WindowContext) -> impl IntoElement {
div()
.when(self.strikethrough, |this| {
this.relative().child(