#[non_exhaustive]pub struct MagnetFeedback {
pub zoom: f32,
pub markers: Vec<MagnetMarker>,
pub connector: Option<(Point, Point, bool)>,
}Expand description
Everything the magnetism feedback renderer needs for one frame, in
scene coordinates (the canvas is already in the view-transform
scope). The built-in renderer draws markers plus a connector; a
custom MagnetismConfig::feedback closure receives the same data.
#[non_exhaustive]: the crate hands this to consumer code — it is the
argument of a custom feedback renderer, and the set grows with every cue
magnetism learns to draw. 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.zoom: f32The view’s current geometric zoom, so the renderer can size
constant-pixel chrome as pixels / zoom in scene units.
markers: Vec<MagnetMarker>Eligible magnets to mark, with their per-frame state.
connector: Option<(Point, Point, bool)>A connector to draw between two scene points, if an interaction
is forming one: the active item-drag snap pair, the port-drag
wire (source to snapped target or cursor), or the keyboard
preview (pending source to focused candidate). true in the
second field marks an accepted connector (drawn solid /
highlighted) versus a tentative one (the free port-drag wire).
Implementations§
Source§impl MagnetFeedback
impl MagnetFeedback
Sourcepub fn new(
zoom: f32,
markers: Vec<MagnetMarker>,
connector: Option<(Point, Point, bool)>,
) -> Self
pub fn new( zoom: f32, markers: Vec<MagnetMarker>, connector: Option<(Point, Point, bool)>, ) -> Self
A frame of feedback stated field by field — the constructor
#[non_exhaustive] takes the place of a struct literal for.
Trait Implementations§
Source§impl Clone for MagnetFeedback
impl Clone for MagnetFeedback
Source§fn clone(&self) -> MagnetFeedback
fn clone(&self) -> MagnetFeedback
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 Freeze for MagnetFeedback
impl RefUnwindSafe for MagnetFeedback
impl Send for MagnetFeedback
impl Sync for MagnetFeedback
impl Unpin for MagnetFeedback
impl UnsafeUnpin for MagnetFeedback
impl UnwindSafe for MagnetFeedback
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> DowncastSync for T
impl<T> DowncastSync for T
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