Enum PresencePayload
pub enum PresencePayload {
Pointer {
x: f32,
y: f32,
},
Caret {
pos: usize,
},
Selection {
start: usize,
end: usize,
},
Typing {
start: usize,
end: usize,
},
Arrived,
Left,
Following {
target: Option<String>,
},
Interaction(Box<SemanticInteraction>),
Status {
text: String,
automatic: bool,
},
Availability {
state: Availability,
call: Option<String>,
},
Composing {
composing: bool,
},
}Variants§
Pointer
Caret
Selection
Typing
The local user just inserted start..end under scope key; peers
render a fading “just typed” swipe (see
ui::presence::PresenceCtx::record_peer_typing). Unlike
Caret/Selection this is an event, published once and decayed
on the receiver.
Arrived
Left
Following
A room-scoped, transient follow relationship announced by the authenticated sender. It is a visual presence cue only; the local Follow command remains private to the follower’s session.
Interaction(Box<SemanticInteraction>)
Truthful action/resource activity. Identity is supplied by the authenticated event envelope; this payload never describes a mouse or keyboard gesture and therefore cannot create a synthetic cursor.
Status
Short room-scoped intention. automatic distinguishes a local-model
suggestion from participant-authored words; empty text clears it.
Availability
How available the authenticated sender is, and the voice channel
they are in, if any. Desktop presence: the shell shows it on faces
and in the roster; it never reaches an app (Self::reaches_apps).
Composing
The sender is composing a message in the resource their key names (a
channel, a direct conversation): a draft is being typed, never what it
says. composing false says they stopped, so a reader who stopped
typing and closed the window is not left “typing” forever. Ephemeral:
a presence frame, never the record.
Implementations§
§impl PresencePayload
impl PresencePayload
pub const fn reaches_apps(&self) -> bool
pub const fn reaches_apps(&self) -> bool
Whether apps receive this: everything but the desktop’s own presence (availability), which only the shell shows.
Trait Implementations§
§impl Clone for PresencePayload
impl Clone for PresencePayload
§fn clone(&self) -> PresencePayload
fn clone(&self) -> PresencePayload
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for PresencePayload
impl Debug for PresencePayload
§impl PartialEq for PresencePayload
impl PartialEq for PresencePayload
impl StructuralPartialEq for PresencePayload
Auto Trait Implementations§
impl Freeze for PresencePayload
impl RefUnwindSafe for PresencePayload
impl Send for PresencePayload
impl Sync for PresencePayload
impl Unpin for PresencePayload
impl UnsafeUnpin for PresencePayload
impl UnwindSafe for PresencePayload
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
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> 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>, which can then be
downcast into Box<dyn 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>, which 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> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§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>
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