Struct PlayerSnapshot
pub struct PlayerSnapshot {Show 14 fields
pub status: PlaybackStatus,
pub track_id: String,
pub title: String,
pub artist: String,
pub album: String,
pub art_url: String,
pub length_us: i64,
pub position_us: i64,
pub volume: f64,
pub can_next: bool,
pub can_prev: bool,
pub can_play: bool,
pub can_pause: bool,
pub can_seek: bool,
}Expand description
A snapshot of everything MPRIS exposes about the player.
Fields§
§status: PlaybackStatus§track_id: StringStable track id → the mpris:trackid object path. Empty ⇒ no track.
title: String§artist: String§album: String§art_url: Stringmpris:artUrl — an http(s) cover URL (or empty).
length_us: i64mpris:length, microseconds (0 ⇒ unknown).
position_us: i64Position, microseconds.
volume: f64Volume, 0.0..=1.0.
can_next: bool§can_prev: bool§can_play: bool§can_pause: bool§can_seek: boolImplementations§
§impl PlayerSnapshot
impl PlayerSnapshot
pub fn metadata_differs(&self, other: &PlayerSnapshot) -> bool
pub fn metadata_differs(&self, other: &PlayerSnapshot) -> bool
Whether two snapshots differ in a field that appears in MPRIS
Metadata (track identity / display / length).
pub fn should_republish(&self, last: &PlayerSnapshot) -> bool
pub fn should_republish(&self, last: &PlayerSnapshot) -> bool
Whether a re-publish is worthwhile: any material field changed, or the
playhead moved enough that a polling client would want a fresh
Position. Ignores sub-second position jitter to avoid signal spam.
Trait Implementations§
§impl Clone for PlayerSnapshot
impl Clone for PlayerSnapshot
§fn clone(&self) -> PlayerSnapshot
fn clone(&self) -> PlayerSnapshot
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read more§impl Debug for PlayerSnapshot
impl Debug for PlayerSnapshot
§impl Default for PlayerSnapshot
impl Default for PlayerSnapshot
§fn default() -> PlayerSnapshot
fn default() -> PlayerSnapshot
Returns the “default value” for a type. Read more
§impl PartialEq for PlayerSnapshot
impl PartialEq for PlayerSnapshot
impl StructuralPartialEq for PlayerSnapshot
Auto Trait Implementations§
impl Freeze for PlayerSnapshot
impl RefUnwindSafe for PlayerSnapshot
impl Send for PlayerSnapshot
impl Sync for PlayerSnapshot
impl Unpin for PlayerSnapshot
impl UnsafeUnpin for PlayerSnapshot
impl UnwindSafe for PlayerSnapshot
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
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
Mutably borrows from an owned value. Read more
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>
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.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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.§fn as_any(&self) -> &(dyn Any + 'static)
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.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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>
Converts
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>
Converts
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§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
The none-equivalent value.