@@ -1,9 +1,9 @@
use crate::{
Action, AnyElement, AnyView, AnyWindowHandle, AppCell, AppContext, AsyncAppContext,
- AvailableSpace, BackgroundExecutor, Bounds, ClipboardItem, Context, Entity, EventEmitter,
- ForegroundExecutor, Global, InputEvent, Keystroke, Model, ModelContext, Modifiers,
- ModifiersChangedEvent, MouseButton, MouseDownEvent, MouseMoveEvent, MouseUpEvent, Pixels,
- Platform, Point, Render, Result, Size, Task, TestDispatcher, TestPlatform, TestWindow,
+ AvailableSpace, BackgroundExecutor, Bounds, ClipboardItem, Context, Empty, Entity,
+ EventEmitter, ForegroundExecutor, Global, InputEvent, Keystroke, Model, ModelContext,
+ Modifiers, ModifiersChangedEvent, MouseButton, MouseDownEvent, MouseMoveEvent, MouseUpEvent,
+ Pixels, Platform, Point, Render, Result, Size, Task, TestDispatcher, TestPlatform, TestWindow,
TextSystem, View, ViewContext, VisualContext, WindowContext, WindowHandle, WindowOptions,
};
use anyhow::{anyhow, bail};
@@ -177,7 +177,7 @@ impl TestAppContext {
/// Adds a new window with no content.
pub fn add_empty_window(&mut self) -> &mut VisualTestContext {
let mut cx = self.app.borrow_mut();
- let window = cx.open_window(WindowOptions::default(), |cx| cx.new_view(|_| ()));
+ let window = cx.open_window(WindowOptions::default(), |cx| cx.new_view(|_| Empty));
drop(cx);
let cx = VisualTestContext::from_window(*window.deref(), self).as_mut();
cx.run_until_parked();
@@ -132,8 +132,10 @@ pub trait Render: 'static + Sized {
fn render(&mut self, cx: &mut ViewContext<Self>) -> impl IntoElement;
}
-impl Render for () {
- fn render(&mut self, _cx: &mut ViewContext<Self>) -> impl IntoElement {}
+impl Render for Empty {
+ fn render(&mut self, _cx: &mut ViewContext<Self>) -> impl IntoElement {
+ Empty
+ }
}
/// You can derive [`IntoElement`] on any type that implements this trait.
@@ -514,9 +516,9 @@ impl IntoElement for AnyElement {
}
/// The empty element, which renders nothing.
-pub type Empty = ();
+pub struct Empty;
-impl IntoElement for () {
+impl IntoElement for Empty {
type Element = Self;
fn element_id(&self) -> Option<ElementId> {
@@ -528,7 +530,7 @@ impl IntoElement for () {
}
}
-impl Element for () {
+impl Element for Empty {
type State = ();
fn request_layout(
@@ -1,5 +1,6 @@
use crate::{
- point, seal::Sealed, IntoElement, Keystroke, Modifiers, Pixels, Point, Render, ViewContext,
+ point, seal::Sealed, Empty, IntoElement, Keystroke, Modifiers, Pixels, Point, Render,
+ ViewContext,
};
use smallvec::SmallVec;
use std::{any::Any, fmt::Debug, ops::Deref, path::PathBuf};
@@ -343,7 +344,8 @@ impl ExternalPaths {
impl Render for ExternalPaths {
fn render(&mut self, _: &mut ViewContext<Self>) -> impl IntoElement {
- // Intentionally left empty because the platform will render icons for the dragged files
+ // the platform will render icons for the dragged files
+ Empty
}
}