#[repr(C)]pub struct InputEvent {
pub sec: i64,
pub usec: i64,
pub event_type: u16,
pub code: u16,
pub value: i32,
}Expand description
Miroir #[repr(C)] de struct input_event (24 octets sur LP64).
Champs aux noms kernel conservés (ADR-029, nuance « type miroir »).
Signedness des horodatages. struct input_event embarque un
struct timeval { __kernel_time_t tv_sec; __kernel_suseconds_t tv_usec; }.
Sur LP64 (x86_64 / aarch64, les deux cibles d’Air), __kernel_time_t et
__kernel_suseconds_t sont tous deux long signés : on type donc
sec et usec en i64 pour refléter fidèlement l’ABI kernel. La spec
family-device.md les notait u64 ; le miroir privilégie la fidélité de
l’ABI (la taille — 8 octets — est identique, le #[repr(C)] inchangé).
Fields§
§sec: i64Secondes de l’horodatage (struct timeval::tv_sec, time_t signé).
usec: i64Microsecondes (struct timeval::tv_usec, suseconds_t signé).
event_type: u16Type d’événement (EV_KEY, EV_REL, EV_ABS, EV_SYN…).
code: u16Code (touche, axe, bouton) dépendant du type.
value: i32Valeur (1/0 pour une touche, delta EV_REL, absolu EV_ABS).
Implementations§
Source§impl InputEvent
impl InputEvent
Sourcepub fn slice_from_bytes(bytes: &[u8]) -> Option<&[InputEvent]>
pub fn slice_from_bytes(bytes: &[u8]) -> Option<&[InputEvent]>
Réinterprète un buffer d’octets en tranche d’InputEvent (zéro copie).
None si la longueur n’est pas un multiple de
size_of::<InputEvent>() ou si l’alignement (8 octets) n’est pas
respecté. Utile quand les octets viennent d’ailleurs (io_uring, mmap).
Trait Implementations§
Source§impl Clone for InputEvent
impl Clone for InputEvent
Source§fn clone(&self) -> InputEvent
fn clone(&self) -> InputEvent
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more