fidl_fuchsia_ui_pointerinjector

Struct Config

Source
pub struct Config {
    pub device_id: Option<u32>,
    pub device_type: Option<DeviceType>,
    pub context: Option<Context>,
    pub target: Option<Target>,
    pub viewport: Option<Viewport>,
    pub dispatch_policy: Option<DispatchPolicy>,
    pub scroll_v_range: Option<Axis>,
    pub scroll_h_range: Option<Axis>,
    pub buttons: Option<Vec<u8>>,
    pub relative_motion_range: Option<[Axis; 2]>,
    /* private fields */
}
Expand description

A specification for an injector |Device|.

All fields required.

Fields§

§device_id: Option<u32>

An identifier for the pointer device that issues pointer event streams.

§device_type: Option<DeviceType>

A characterization of the pointer device.

§context: Option<Context>

The scope and coordinate system of the injector |Device|.

Note: To avoid circular injection scenarios, |context| must be a strict ancestor of |target|.

§target: Option<Target>

The region where dispatch is attempted for injected events.

Note: To avoid circular injection scenarios, |target| must be a strict descendant of |context|.

§viewport: Option<Viewport>

The initial viewport for injected events. Subsequent modifications to the viewport can also be sent synchronously with injected events.

§dispatch_policy: Option<DispatchPolicy>

A specification of the UI clients in |target| that may have injected events dispatched to them.

For example, if |dispatch_policy| is |EXCLUSIVE|, then only |target| may have injected events dispatched to it, regardless of other factors, such as surface occlusion by clients inside and outside of |target|.

§scroll_v_range: Option<Axis>

Range of vertical scroll values issued by the device.

§scroll_h_range: Option<Axis>

Range of horizontal scroll values issued by the device.

§buttons: Option<Vec<u8>>

Mouse button identifiers issued by the device, in priority order.

The priority order of mouse buttons is a policy choice enacted by the injector. This priority order is conveyed verbatim to UI clients via [fuchsia.ui.pointer.MouseDeviceInfo.buttons], so button priority is shared consistently between multiple UI clients. For example, to swap the left-side (0x1) and right-side (0x2) physical buttons from their traditional roles of primary and secondary mouse buttons, the injector can specify [0x2, 0x1, … ] in this [buttons] vector.

Note that preserving the physical button ID is also a policy choice. If preserved, a discerning UI client can distinguish between the ground truth (which physical button was pressed) versus the desired interpretation (what priority does that physical button have, on the current system).

§relative_motion_range: Option<[Axis; 2]>

Range of X and Y motion by a mouse device.

Trait Implementations§

Source§

impl Debug for Config

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Decode<Config, DefaultFuchsiaResourceDialect> for Config

Source§

fn new_empty() -> Self

Creates a valid instance of Self. The specific value does not matter, since it will be overwritten by decode.
Source§

unsafe fn decode( &mut self, decoder: &mut Decoder<'_, DefaultFuchsiaResourceDialect>, offset: usize, depth: Depth, ) -> Result<()>

Decodes an object of type T from the decoder’s buffers into self. Read more
Source§

impl Default for Config

Source§

fn default() -> Config

Returns the “default value” for a type. Read more
Source§

impl Encode<Config, DefaultFuchsiaResourceDialect> for &mut Config

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, DefaultFuchsiaResourceDialect>, offset: usize, depth: Depth, ) -> Result<()>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl PartialEq for Config

Source§

fn eq(&self, other: &Config) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl ResourceTypeMarker for Config

Source§

type Borrowed<'a> = &'a mut Config

The Rust type to use for encoding. This is a particular Encode<Self> type cheaply obtainable from &mut Self::Owned. There are three cases: Read more
Source§

fn take_or_borrow<'a>( value: &'a mut <Self as TypeMarker>::Owned, ) -> Self::Borrowed<'a>

Cheaply converts from &mut Self::Owned to Self::Borrowed. For HandleBased types this is “take” (it returns an owned handle and replaces value with Handle::invalid), and for all other types it is “borrow” (just converts from one reference to another).
Source§

impl TypeMarker for Config

Source§

type Owned = Config

The owned Rust type which this FIDL type decodes into.
Source§

fn inline_align(_context: Context) -> usize

Returns the minimum required alignment of the inline portion of the encoded object. It must be a (nonzero) power of two.
Source§

fn inline_size(_context: Context) -> usize

Returns the size of the inline portion of the encoded object, including padding for alignment. Must be a multiple of inline_align.
§

fn encode_is_copy() -> bool

Returns true if the memory layout of Self::Owned matches the FIDL wire format and encoding requires no validation. When true, we can optimize encoding arrays and vectors of Self::Owned to a single memcpy. Read more
§

fn decode_is_copy() -> bool

Returns true if the memory layout of Self::Owned matches the FIDL wire format and decoding requires no validation. When true, we can optimize decoding arrays and vectors of Self::Owned to a single memcpy.
Source§

impl Standalone<DefaultFuchsiaResourceDialect> for Config

Source§

impl StructuralPartialEq for Config

Auto Trait Implementations§

§

impl Freeze for Config

§

impl RefUnwindSafe for Config

§

impl Send for Config

§

impl Sync for Config

§

impl Unpin for Config

§

impl UnwindSafe for Config

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
§

impl<T, D> Encode<Ambiguous1, D> for T
where D: ResourceDialect,

§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
§

impl<T, D> Encode<Ambiguous2, D> for T
where D: ResourceDialect,

§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more