Skip to main content

RootFeature

Struct RootFeature 

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

Implements the Root / 0x0000 feature that every HID++2.0 device supports by default.

This implementation is added automatically to any crate::device::Device created using crate::device::Device::new.

Implementations§

Source§

impl RootFeature

Source

pub async fn get_feature( &self, id: u16, ) -> Result<Option<FeatureInformation>, Hidpp20Error>

Retrieves information about a specific feature ID, including its index in the feature table, its type and its version.

If the feature is not supported by the device, None is returned.

If the device only supports the root feature version 1, the FeatureInformation::version field will be 0 for all features.

Source

pub async fn ping(&self, data: u8) -> Result<u8, Hidpp20Error>

Pings the device with an arbitrary data byte. The device will respond with the same data if communication succeeds.

The underlying function, as described in the protocol specification, will also look up the protocol version supported by the device.
This is not implemented here, as the crate::protocol::determine_version function does so in a more general manner.

Trait Implementations§

Source§

impl Clone for RootFeature

Source§

fn clone(&self) -> RootFeature

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl CreatableFeature for RootFeature

Source§

const ID: u16 = 0x0000

The protocol ID of the implemented feature.
Source§

const STARTING_VERSION: u8 = 0

The version of the feature the implementation starts to support.
Source§

fn new(chan: Arc<HidppChannel>, device_index: u8, _: u8) -> Self

Creates a new instance of the feature implementation.
Source§

impl Feature for RootFeature

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V