Move tester to a new iced_tester subcrate
This commit is contained in:
parent
9e81c2b9e8
commit
4f7444bddf
28 changed files with 392 additions and 355 deletions
|
|
@ -30,12 +30,14 @@
|
|||
//! ]
|
||||
//! }
|
||||
//! ```
|
||||
use crate::message;
|
||||
use crate::program::{self, Program};
|
||||
use crate::shell;
|
||||
use crate::theme;
|
||||
use crate::window;
|
||||
use crate::{
|
||||
Element, Executor, Font, Preset, Result, Settings, Size, Subscription, Task,
|
||||
Element, Executor, Font, MaybeSend, Preset, Result, Settings, Size,
|
||||
Subscription, Task,
|
||||
};
|
||||
|
||||
use iced_debug as debug;
|
||||
|
|
@ -81,7 +83,7 @@ pub fn application<State, Message, Theme, Renderer>(
|
|||
) -> Application<impl Program<State = State, Message = Message, Theme = Theme>>
|
||||
where
|
||||
State: 'static,
|
||||
Message: program::Message + 'static,
|
||||
Message: MaybeSend + 'static,
|
||||
Theme: Default + theme::Base,
|
||||
Renderer: program::Renderer,
|
||||
{
|
||||
|
|
@ -100,7 +102,7 @@ where
|
|||
impl<State, Message, Theme, Renderer, Boot, Update, View> Program
|
||||
for Instance<State, Message, Theme, Renderer, Boot, Update, View>
|
||||
where
|
||||
Message: program::Message + 'static,
|
||||
Message: MaybeSend + 'static,
|
||||
Theme: Default + theme::Base,
|
||||
Renderer: program::Renderer,
|
||||
Boot: self::Boot<State, Message>,
|
||||
|
|
@ -142,6 +144,10 @@ where
|
|||
fn settings(&self) -> Settings {
|
||||
Settings::default()
|
||||
}
|
||||
|
||||
fn window(&self) -> Option<iced_core::window::Settings> {
|
||||
Some(window::Settings::default())
|
||||
}
|
||||
}
|
||||
|
||||
Application {
|
||||
|
|
@ -180,25 +186,25 @@ impl<P: Program> Application<P> {
|
|||
pub fn run(self) -> Result
|
||||
where
|
||||
Self: 'static,
|
||||
P::Message: message::MaybeDebug + message::MaybeClone,
|
||||
{
|
||||
let settings = self.settings.clone();
|
||||
let window = self.window.clone();
|
||||
#[cfg(feature = "debug")]
|
||||
iced_debug::init(iced_debug::Metadata {
|
||||
name: P::name(),
|
||||
theme: None,
|
||||
can_time_travel: cfg!(feature = "time-travel"),
|
||||
});
|
||||
|
||||
#[cfg(all(feature = "debug", not(target_arch = "wasm32")))]
|
||||
let program = {
|
||||
iced_debug::init(iced_debug::Metadata {
|
||||
name: P::name(),
|
||||
theme: None,
|
||||
can_time_travel: cfg!(feature = "time-travel"),
|
||||
});
|
||||
#[cfg(feature = "tester")]
|
||||
let program = iced_tester::attach(self);
|
||||
|
||||
iced_devtools::attach(self)
|
||||
};
|
||||
#[cfg(all(feature = "debug", not(feature = "tester")))]
|
||||
let program = iced_devtools::attach(self);
|
||||
|
||||
#[cfg(any(not(feature = "debug"), target_arch = "wasm32"))]
|
||||
let program = self;
|
||||
|
||||
Ok(shell::run(program, settings, Some(window))?)
|
||||
Ok(shell::run(program)?)
|
||||
}
|
||||
|
||||
/// Sets the [`Settings`] that will be used to run the [`Application`].
|
||||
|
|
@ -456,6 +462,10 @@ impl<P: Program> Program for Application<P> {
|
|||
self.settings.clone()
|
||||
}
|
||||
|
||||
fn window(&self) -> Option<window::Settings> {
|
||||
Some(self.window.clone())
|
||||
}
|
||||
|
||||
fn boot(&self) -> (Self::State, Task<Self::Message>) {
|
||||
self.raw.boot()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ pub fn timed<State, Message, Theme, Renderer>(
|
|||
>
|
||||
where
|
||||
State: 'static,
|
||||
Message: program::Message + 'static,
|
||||
Message: Send + 'static,
|
||||
Theme: Default + theme::Base + 'static,
|
||||
Renderer: program::Renderer + 'static,
|
||||
{
|
||||
|
|
@ -68,7 +68,7 @@ where
|
|||
View,
|
||||
>
|
||||
where
|
||||
Message: program::Message + 'static,
|
||||
Message: Send + 'static,
|
||||
Theme: Default + theme::Base + 'static,
|
||||
Renderer: program::Renderer + 'static,
|
||||
Boot: self::Boot<State, Message>,
|
||||
|
|
@ -92,6 +92,10 @@ where
|
|||
Settings::default()
|
||||
}
|
||||
|
||||
fn window(&self) -> Option<iced_core::window::Settings> {
|
||||
Some(window::Settings::default())
|
||||
}
|
||||
|
||||
fn boot(&self) -> (State, Task<Self::Message>) {
|
||||
let (state, task) = self.boot.boot();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
//! Create and run daemons that run in the background.
|
||||
use crate::application;
|
||||
use crate::message;
|
||||
use crate::program::{self, Program};
|
||||
use crate::shell;
|
||||
use crate::theme;
|
||||
use crate::window;
|
||||
use crate::{
|
||||
Element, Executor, Font, Preset, Result, Settings, Subscription, Task,
|
||||
Element, Executor, Font, MaybeSend, Preset, Result, Settings, Subscription,
|
||||
Task,
|
||||
};
|
||||
|
||||
use iced_debug as debug;
|
||||
|
|
@ -29,7 +31,7 @@ pub fn daemon<State, Message, Theme, Renderer>(
|
|||
) -> Daemon<impl Program<State = State, Message = Message, Theme = Theme>>
|
||||
where
|
||||
State: 'static,
|
||||
Message: program::Message + 'static,
|
||||
Message: MaybeSend + 'static,
|
||||
Theme: Default + theme::Base,
|
||||
Renderer: program::Renderer,
|
||||
{
|
||||
|
|
@ -48,7 +50,7 @@ where
|
|||
impl<State, Message, Theme, Renderer, Boot, Update, View> Program
|
||||
for Instance<State, Message, Theme, Renderer, Boot, Update, View>
|
||||
where
|
||||
Message: program::Message + 'static,
|
||||
Message: MaybeSend + 'static,
|
||||
Theme: Default + theme::Base,
|
||||
Renderer: program::Renderer,
|
||||
Boot: application::Boot<State, Message>,
|
||||
|
|
@ -71,6 +73,10 @@ where
|
|||
Settings::default()
|
||||
}
|
||||
|
||||
fn window(&self) -> Option<iced_core::window::Settings> {
|
||||
None
|
||||
}
|
||||
|
||||
fn boot(&self) -> (Self::State, Task<Self::Message>) {
|
||||
self.boot.boot()
|
||||
}
|
||||
|
|
@ -126,9 +132,8 @@ impl<P: Program> Daemon<P> {
|
|||
pub fn run(self) -> Result
|
||||
where
|
||||
Self: 'static,
|
||||
P::Message: message::MaybeDebug + message::MaybeClone,
|
||||
{
|
||||
let settings = self.settings.clone();
|
||||
|
||||
#[cfg(all(feature = "debug", not(target_arch = "wasm32")))]
|
||||
let program = {
|
||||
iced_debug::init(iced_debug::Metadata {
|
||||
|
|
@ -143,7 +148,7 @@ impl<P: Program> Daemon<P> {
|
|||
#[cfg(any(not(feature = "debug"), target_arch = "wasm32"))]
|
||||
let program = self;
|
||||
|
||||
Ok(shell::run(program, settings, None)?)
|
||||
Ok(shell::run(program)?)
|
||||
}
|
||||
|
||||
/// Sets the [`Settings`] that will be used to run the [`Daemon`].
|
||||
|
|
@ -298,6 +303,10 @@ impl<P: Program> Program for Daemon<P> {
|
|||
self.settings.clone()
|
||||
}
|
||||
|
||||
fn window(&self) -> Option<window::Settings> {
|
||||
None
|
||||
}
|
||||
|
||||
fn boot(&self) -> (Self::State, Task<Self::Message>) {
|
||||
self.raw.boot()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -526,7 +526,9 @@ pub use crate::core::{
|
|||
Rotation, Settings, Shadow, Size, Theme, Transformation, Vector, never,
|
||||
};
|
||||
pub use crate::program::Preset;
|
||||
pub use crate::program::message;
|
||||
pub use crate::runtime::exit;
|
||||
pub use crate::runtime::futures::MaybeSend;
|
||||
pub use iced_futures::Subscription;
|
||||
|
||||
pub use Alignment::Center;
|
||||
|
|
@ -696,7 +698,7 @@ pub fn run<State, Message, Theme, Renderer>(
|
|||
) -> Result
|
||||
where
|
||||
State: Default + 'static,
|
||||
Message: program::Message + 'static,
|
||||
Message: MaybeSend + message::MaybeDebug + message::MaybeClone + 'static,
|
||||
Theme: Default + theme::Base + 'static,
|
||||
Renderer: program::Renderer + 'static,
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue