Move Maybe* traits back to iced_futures

This commit is contained in:
Héctor Ramón Jiménez 2024-06-14 01:57:49 +02:00
parent 4ab4ffc9cf
commit 4e7cbbf98a
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
11 changed files with 12 additions and 14 deletions

View file

@ -1,8 +1,8 @@
//! Listen to runtime events.
use crate::core::event::{self, Event};
use crate::core::window;
use crate::core::MaybeSend;
use crate::subscription::{self, Subscription};
use crate::MaybeSend;
/// Returns a [`Subscription`] to all the ignored runtime events.
///

View file

@ -1,5 +1,6 @@
//! Choose your preferred executor to power a runtime.
use crate::core::MaybeSend;
use crate::MaybeSend;
use futures::Future;
/// A type that can run futures.

View file

@ -2,8 +2,8 @@
use crate::core;
use crate::core::event;
use crate::core::keyboard::{Event, Key, Modifiers};
use crate::core::MaybeSend;
use crate::subscription::{self, Subscription};
use crate::MaybeSend;
/// Listens to keyboard key presses and calls the given function
/// map them into actual messages.

View file

@ -8,6 +8,7 @@
pub use futures;
pub use iced_core as core;
mod maybe;
mod runtime;
pub mod backend;
@ -17,6 +18,7 @@ pub mod keyboard;
pub mod subscription;
pub use executor::Executor;
pub use maybe::{MaybeSend, MaybeSync};
pub use platform::*;
pub use runtime::Runtime;
pub use subscription::Subscription;

35
futures/src/maybe.rs Normal file
View file

@ -0,0 +1,35 @@
#[cfg(not(target_arch = "wasm32"))]
mod platform {
/// An extension trait that enforces `Send` only on native platforms.
///
/// Useful for writing cross-platform async code!
pub trait MaybeSend: Send {}
impl<T> MaybeSend for T where T: Send {}
/// An extension trait that enforces `Sync` only on native platforms.
///
/// Useful for writing cross-platform async code!
pub trait MaybeSync: Sync {}
impl<T> MaybeSync for T where T: Sync {}
}
#[cfg(target_arch = "wasm32")]
mod platform {
/// An extension trait that enforces `Send` only on native platforms.
///
/// Useful for writing cross-platform async code!
pub trait MaybeSend {}
impl<T> MaybeSend for T {}
/// An extension trait that enforces `Sync` only on native platforms.
///
/// Useful for writing cross-platform async code!
pub trait MaybeSync {}
impl<T> MaybeSync for T {}
}
pub use platform::{MaybeSend, MaybeSync};

View file

@ -1,7 +1,6 @@
//! Run commands and keep track of subscriptions.
use crate::core::MaybeSend;
use crate::subscription;
use crate::{BoxFuture, BoxStream, Executor};
use crate::{BoxFuture, BoxStream, Executor, MaybeSend};
use futures::{channel::mpsc, Sink};
use std::marker::PhantomData;

View file

@ -5,9 +5,8 @@ pub use tracker::Tracker;
use crate::core::event;
use crate::core::window;
use crate::core::MaybeSend;
use crate::futures::{Future, Stream};
use crate::BoxStream;
use crate::{BoxStream, MaybeSend};
use futures::channel::mpsc;
use futures::never::Never;

View file

@ -1,6 +1,5 @@
use crate::core::MaybeSend;
use crate::subscription::{Event, Hasher, Recipe};
use crate::BoxFuture;
use crate::{BoxFuture, MaybeSend};
use futures::channel::mpsc;
use futures::sink::{Sink, SinkExt};