Skip to main content

Presence

Struct Presence 

Source
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,

Source

pub fn new( runtime: &mut MotionRuntime, hidden: T, visible: T, timing: Timing, ) -> Presence<T>

Creates a hidden, unmounted presence controller.

Source

pub fn motion(&self) -> Motion<T>

Returns the runtime motion controlled by this presence value.

Source

pub fn value<'a>( &self, runtime: &'a MotionRuntime, ) -> Result<&'a T, MotionError>

Returns the current animated value.

Source

pub const fn is_mounted(&self) -> bool

Returns whether the associated content should be mounted.

Source

pub const fn is_visible(&self) -> bool

Returns whether the presence target is visible.

Source

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.

Source

pub fn toggle( &mut self, runtime: &mut MotionRuntime, ) -> Result<bool, MotionError>

Toggles the target visibility using the default transition.

Source

pub fn show(&mut self, runtime: &mut MotionRuntime) -> Result<(), MotionError>

Mounts the content and transitions toward the visible value.

Source

pub fn hide(&mut self, runtime: &mut MotionRuntime) -> Result<(), MotionError>

Transitions toward the hidden value.

Source

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.

Source

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.

Source

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.

Source

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

Convert 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)

Convert &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)

Convert &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> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<State, Message> IntoBoot<State, Message> for State

Source§

fn into_boot(self) -> (State, Task<Message>)

Turns some type into the initial state of some Application.
Source§

impl<T> MaybeClone for T

Source§

impl<T> MaybeDebug for T

Source§

impl<T> MaybeSend for T
where T: Send,

Source§

impl<T> MaybeSync for T
where T: Sync,

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more