Struct Monitor

Source
pub struct Monitor { /* private fields */ }
Expand description

Monitors for device events.

A monitor communicates with the kernel over a socket. Filtering events is performed efficiently in the kernel, and only events that match the filters are received by the socket. Filters must be setup before listening for events.

Implementations§

Source§

impl Monitor

Source

pub fn new(context: &Context) -> Result<Self>

Creates a new Monitor.

Source

pub fn match_subsystem<T: AsRef<OsStr>>(&mut self, subsystem: T) -> Result<()>

Adds a filter that matches events for devices with the given subsystem.

Source

pub fn match_subsystem_devtype<T: AsRef<OsStr>, U: AsRef<OsStr>>( &mut self, subsystem: T, devtype: U, ) -> Result<()>

Adds a filter that matches events for devices with the given subsystem and device type.

Source

pub fn match_tag<T: AsRef<OsStr>>(&mut self, tag: T) -> Result<()>

Adds a filter that matches events for devices with the given tag.

Source

pub fn clear_filters(&mut self) -> Result<()>

Removes all filters currently set on the monitor.

Source

pub fn listen(self) -> Result<MonitorSocket>

Listens for events matching the current filters.

This method consumes the Monitor.

Trait Implementations§

Source§

impl Drop for Monitor

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

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