faker_rust/default/
electrical_components.rs1use crate::base::sample;
4use crate::locale::fetch_locale;
5
6pub fn component() -> String {
8 fetch_locale("electrical_components.components", "en")
9 .map(|v| sample(&v))
10 .unwrap_or_else(|| sample(FALLBACK_COMPONENTS).to_string())
11}
12
13pub fn active() -> String {
15 fetch_locale("electrical_components.actives", "en")
16 .map(|v| sample(&v))
17 .unwrap_or_else(|| sample(FALLBACK_ACTIVE).to_string())
18}
19
20pub fn passive() -> String {
22 fetch_locale("electrical_components.passives", "en")
23 .map(|v| sample(&v))
24 .unwrap_or_else(|| sample(FALLBACK_PASSIVE).to_string())
25}
26
27const FALLBACK_COMPONENTS: &[&str] = &[
29 "Resistor", "Capacitor", "Inductor", "Transistor", "Diode", "LED",
30 "Microcontroller", "Integrated Circuit", "Transformer", "Relay", "Switch",
31 "Fuse", "Circuit Breaker", "Potentiometer", "Oscillator", "Sensor",
32];
33
34const FALLBACK_ACTIVE: &[&str] = &[
35 "Transistor", "Diode", "LED", "Microcontroller", "Op-Amp", "Voltage Regulator",
36 "Logic Gate", "Amplifier", "Rectifier", "Thyristor", "MOSFET", "BJT",
37];
38
39const FALLBACK_PASSIVE: &[&str] = &[
40 "Resistor", "Capacitor", "Inductor", "Transformer", "Potentiometer",
41 "Varistor", "Thermistor", "Photoresistor", "Crystal", "Fuse", "Switch",
42];
43
44#[cfg(test)]
45mod tests {
46 use super::*;
47
48 #[test]
49 fn test_component() {
50 assert!(!component().is_empty());
51 }
52
53 #[test]
54 fn test_active() {
55 assert!(!active().is_empty());
56 }
57
58 #[test]
59 fn test_passive() {
60 assert!(!passive().is_empty());
61 }
62}