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
39
40
41
42
43
44
45
46
47
48
use crateValueDescEntries;
pub use ValueDescriptionsBuilder;
/// Value descriptions for a signal.
///
/// Maps numeric signal values to human-readable text descriptions.
/// For example, a gear position signal might map:
/// - 0 -> "Park"
/// - 1 -> "Reverse"
/// - 2 -> "Neutral"
/// - 3 -> "Drive"
///
/// # Examples
///
/// ```rust,no_run
/// use dbc_rs::Dbc;
///
/// let dbc_content = r#"VERSION "1.0"
///
/// BU_: ECM
///
/// BO_ 100 EngineData : 8 ECM
/// SG_ GearPosition : 0|8@1+ (1,0) [0|5] "" *
///
/// VAL_ 100 GearPosition 0 "Park" 1 "Reverse" 2 "Neutral" 3 "Drive" ;
/// "#;
///
/// let dbc = Dbc::parse(dbc_content)?;
/// let message = dbc.messages().iter().find(|m| m.id() == 100).unwrap();
/// let signal = message.signals().find("GearPosition").unwrap();
///
/// if let Some(value_descriptions) = dbc.value_descriptions_for_signal(message.id(), signal.name()) {
/// if let Some(description) = value_descriptions.get(0) {
/// println!("Value 0 means: {}", description);
/// }
/// }
/// # Ok::<(), dbc_rs::Error>(())
/// ```