1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//! Inputs are things that a person or other device (such as the host) can do to cause a behavior.
//!
//! Examples include:
//! * Analog inputs from hall effect sensors or a varistor
//! * Momentary switches from a traditional keyboard switch
//! * Messages from software on a host machine or other device
/// Structs that implement the Input trait represent physical or logical inputs
/// to the keyboard. They can be anything from a momentary switch seen in typical keyboards
/// to analog inputs from hall effect sensors or a varistor, to inputs from software on a host
/// machine
/// Marker trait indicating that the implementing struct can be used as a configuration
/// which read a signal of type S
/// Defines (typically at the hardware level) how a configured input is read.
///
/// For example:
/// * For an input configuration _IC_, what does the hardware do to _read the signal S_?
/// * For an input configuration _analog GPIO2_, what does the hardware do to _read GPIO2_?