diff options
| author | 2020-09-08 00:35:17 +0200 | |
|---|---|---|
| committer | 2020-09-08 00:44:59 +0200 | |
| commit | c1f79b40cf704cafc807250b177fc7d3444fe54f (patch) | |
| tree | 31c0cf2b8d166976dc819f020e0185f9d8c2bdcd /src/application.rs | |
| parent | faa12382d4d7a44ab60fa5bf2a5024a34dbb2e8d (diff) | |
| download | iced-c1f79b40cf704cafc807250b177fc7d3444fe54f.tar.gz iced-c1f79b40cf704cafc807250b177fc7d3444fe54f.tar.bz2 iced-c1f79b40cf704cafc807250b177fc7d3444fe54f.zip | |
Make `Application` and `Sandbox` return a `Result`
Diffstat (limited to 'src/application.rs')
| -rw-r--r-- | src/application.rs | 22 | 
1 files changed, 13 insertions, 9 deletions
| diff --git a/src/application.rs b/src/application.rs index 47b89dbd..d46cd2ac 100644 --- a/src/application.rs +++ b/src/application.rs @@ -1,6 +1,5 @@ -use crate::{ -    window, Color, Command, Element, Executor, Settings, Subscription, -}; +use crate::window; +use crate::{Color, Command, Element, Executor, Settings, Subscription};  /// An interactive cross-platform application.  /// @@ -59,7 +58,7 @@ use crate::{  /// ```no_run  /// use iced::{executor, Application, Command, Element, Settings, Text};  /// -/// pub fn main() { +/// pub fn main() -> iced::Result {  ///     Hello::run(Settings::default())  /// }  /// @@ -204,12 +203,13 @@ pub trait Application: Sized {      /// Runs the [`Application`].      ///      /// On native platforms, this method will take control of the current thread -    /// and __will NOT return__. +    /// and __will NOT return__ unless there is an [`Error`] during startup.      ///      /// It should probably be that last thing you call in your `main` function.      ///      /// [`Application`]: trait.Application.html -    fn run(settings: Settings<Self::Flags>) +    /// [`Error`]: enum.Error.html +    fn run(settings: Settings<Self::Flags>) -> crate::Result      where          Self: 'static,      { @@ -226,15 +226,19 @@ pub trait Application: Sized {                  ..crate::renderer::Settings::default()              }; -            crate::runtime::application::run::< +            Ok(crate::runtime::application::run::<                  Instance<Self>,                  Self::Executor,                  crate::renderer::window::Compositor, -            >(settings.into(), renderer_settings); +            >(settings.into(), renderer_settings)?)          }          #[cfg(target_arch = "wasm32")] -        <Instance<Self> as iced_web::Application>::run(settings.flags); +        { +            <Instance<Self> as iced_web::Application>::run(settings.flags); + +            Ok(()) +        }      }  } | 
