#[non_exhaustive]pub struct MagnetConnection {
pub from: MagnetRef,
pub to: MagnetRef,
pub payload: Option<Rc<dyn Any>>,
}Expand description
A formed connection between two magnets, delivered to the consumer’s
on_connect handler on release (mouse) or confirm (keyboard).
from is the magnet that initiated the connection (the dragged
item’s magnet, the grabbed port, or the keyboard-activated source);
to is the magnet it connected onto. payload is whatever the
predicate’s MagnetVerdict::Accept carried.
#[non_exhaustive]: the crate hands this to consumer code — it is the
argument of on_connect. Build one with new.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.from: MagnetRefThe initiating magnet.
to: MagnetRefThe receiving magnet.
payload: Option<Rc<dyn Any>>The connection payload from the accepting verdict, if any.
Implementations§
Source§impl MagnetConnection
impl MagnetConnection
Sourcepub fn new(from: MagnetRef, to: MagnetRef, payload: Option<Rc<dyn Any>>) -> Self
pub fn new(from: MagnetRef, to: MagnetRef, payload: Option<Rc<dyn Any>>) -> Self
A connection stated field by field — the constructor
#[non_exhaustive] takes the place of a struct literal for.
The scene builds its own; this is for a consumer testing on_connect.
Sourcepub fn payload_as<P: 'static>(&self) -> Option<&P>
pub fn payload_as<P: 'static>(&self) -> Option<&P>
Borrow the connection payload downcast to P.
Trait Implementations§
Source§impl Clone for MagnetConnection
impl Clone for MagnetConnection
Source§fn clone(&self) -> MagnetConnection
fn clone(&self) -> MagnetConnection
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for MagnetConnection
impl !Send for MagnetConnection
impl !Sync for MagnetConnection
impl !UnwindSafe for MagnetConnection
impl Freeze for MagnetConnection
impl Unpin for MagnetConnection
impl UnsafeUnpin for MagnetConnection
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more