pub struct Presence<T>where
T: Animatable,{ /* private fields */ }Expand description
Coordinates mounting and visibility around enter and exit animations.
§Examples
use aura_anim_core::{MotionRuntime, Presence, timing::Timing};
use std::time::Duration;
let mut runtime = MotionRuntime::new();
let mut presence = Presence::new(&mut runtime, 0.0_f32, 1.0, Timing::new(100.0));
presence.show(&mut runtime).unwrap();
assert!(presence.is_mounted());
runtime.tick(Duration::from_millis(100));
assert_eq!(*presence.value(&runtime).unwrap(), 1.0);
presence.hide(&mut runtime).unwrap();
runtime.tick(Duration::from_millis(100));
presence.sync(&runtime).unwrap();
assert!(!presence.is_mounted());Implementations§
Source§impl<T> Presence<T>where
T: Animatable,
impl<T> Presence<T>where
T: Animatable,
Sourcepub fn new(
runtime: &mut MotionRuntime,
hidden: T,
visible: T,
timing: Timing,
) -> Presence<T>
pub fn new( runtime: &mut MotionRuntime, hidden: T, visible: T, timing: Timing, ) -> Presence<T>
Creates a hidden, unmounted presence controller.
Sourcepub fn motion(&self) -> Motion<T>
pub fn motion(&self) -> Motion<T>
Returns the runtime motion controlled by this presence value.
Sourcepub fn value<'a>(
&self,
runtime: &'a MotionRuntime,
) -> Result<&'a T, MotionError>
pub fn value<'a>( &self, runtime: &'a MotionRuntime, ) -> Result<&'a T, MotionError>
Returns the current animated value.
Sourcepub const fn is_mounted(&self) -> bool
pub const fn is_mounted(&self) -> bool
Returns whether the associated content should be mounted.
Sourcepub const fn is_visible(&self) -> bool
pub const fn is_visible(&self) -> bool
Returns whether the presence target is visible.
Sourcepub fn set_visible(
&mut self,
visible: bool,
runtime: &mut MotionRuntime,
) -> Result<bool, MotionError>
pub fn set_visible( &mut self, visible: bool, runtime: &mut MotionRuntime, ) -> Result<bool, MotionError>
Updates the target visibility when it differs from the current target.
Returns Ok(false) without starting a new playback when the requested
visibility is already current.
Sourcepub fn toggle(
&mut self,
runtime: &mut MotionRuntime,
) -> Result<bool, MotionError>
pub fn toggle( &mut self, runtime: &mut MotionRuntime, ) -> Result<bool, MotionError>
Toggles the target visibility using the default transition.
Sourcepub fn show(&mut self, runtime: &mut MotionRuntime) -> Result<(), MotionError>
pub fn show(&mut self, runtime: &mut MotionRuntime) -> Result<(), MotionError>
Mounts the content and transitions toward the visible value.
Sourcepub fn hide(&mut self, runtime: &mut MotionRuntime) -> Result<(), MotionError>
pub fn hide(&mut self, runtime: &mut MotionRuntime) -> Result<(), MotionError>
Transitions toward the hidden value.
Sourcepub fn show_with<P, Kind>(
&mut self,
animation: P,
runtime: &mut MotionRuntime,
) -> Result<(), MotionError>where
P: IntoMotionAnimation<T, Kind>,
pub fn show_with<P, Kind>(
&mut self,
animation: P,
runtime: &mut MotionRuntime,
) -> Result<(), MotionError>where
P: IntoMotionAnimation<T, Kind>,
Mounts the content and plays a custom enter animation source.
Sourcepub fn hide_with<P, Kind>(
&mut self,
animation: P,
runtime: &mut MotionRuntime,
) -> Result<(), MotionError>where
P: IntoMotionAnimation<T, Kind>,
pub fn hide_with<P, Kind>(
&mut self,
animation: P,
runtime: &mut MotionRuntime,
) -> Result<(), MotionError>where
P: IntoMotionAnimation<T, Kind>,
Plays a custom exit animation source.
Sourcepub fn handle_event(&mut self, event: &MotionEvent) -> bool
pub fn handle_event(&mut self, event: &MotionEvent) -> bool
Applies one runtime event and returns whether mounted state changed.
Only completion of the current exit playback unmounts content. Events from interrupted or superseded exits are ignored.
Sourcepub fn sync(&mut self, runtime: &MotionRuntime) -> Result<(), MotionError>
pub fn sync(&mut self, runtime: &MotionRuntime) -> Result<(), MotionError>
Unmounts hidden content after its animation completes.
Auto Trait Implementations§
impl<T> Freeze for Presence<T>where
T: Freeze,
impl<T> RefUnwindSafe for Presence<T>where
T: RefUnwindSafe,
impl<T> Send for Presence<T>where
T: Send,
impl<T> Sync for Presence<T>where
T: Sync,
impl<T> Unpin for Presence<T>where
T: Unpin,
impl<T> UnsafeUnpin for Presence<T>where
T: UnsafeUnpin,
impl<T> UnwindSafe for Presence<T>where
T: UnwindSafe,
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§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.Source§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.Source§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.Source§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.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<State, Message> IntoBoot<State, Message> for State
impl<State, Message> IntoBoot<State, Message> for State
Source§fn into_boot(self) -> (State, Task<Message>)
fn into_boot(self) -> (State, Task<Message>)
Application.