Skip to main content

Watcher

Struct Watcher 

Source
pub struct Watcher {
    queue: EventQueue<State>,
    state: State,
    clipboard: ClipboardType,
    watched: WlSeat,
    cancel_read: PipeReader,
    cancel_write: Arc<PipeWriter>,
}
Expand description

Watches the clipboard for selection changes.

Construct one with Watcher::new, then drive it by calling Watcher::next_event in a loop. The first call reports the current selection state; subsequent calls block until the selection changes again.

Seats are resolved when the watcher starts, so passing Seat::Unspecified will use the first seat found on construction rather than re-enumerating seats as offers come in.

Fields§

§queue: EventQueue<State>§state: State§clipboard: ClipboardType§watched: WlSeat§cancel_read: PipeReader§cancel_write: Arc<PipeWriter>

Implementations§

Source§

impl Watcher

Source

pub fn new(clipboard: ClipboardType, seat: Seat<'_>) -> Result<Self, Error>

Starts watching the clipboard.

Returns an error immediately if there are no seats, the requested seat or protocol is missing, or primary selection was requested but is unsupported.

Source

pub(crate) fn with_socket( clipboard: ClipboardType, seat: Seat<'_>, socket_name: Option<OsString>, ) -> Result<Self, Error>

Source

pub fn cancel_handle(&self) -> CancelHandle

Returns a handle that stops this watcher when CancelHandle::cancel is called.

The handle can be cloned and sent to another thread to interrupt a Watcher::next_event call that is blocked waiting for the next selection change.

Source

pub fn next_event<'a>(&'a mut self) -> Result<Option<ClipboardEvent<'a>>, Error>

Blocks until the next selection event for the watched clipboard and seat.

On success yields the ClipboardEvent and an Offer to read its contents from. Returns Ok(None) if cancelled via CancelHandle::cancel, or Err on a Wayland communication failure.

Source

fn front_matches(&mut self) -> bool

Source

fn take_front_event<'a>(&'a mut self) -> ClipboardEvent<'a>

Source

fn wait(&mut self) -> Result<bool, Error>

Auto Trait Implementations§

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