Skip to main content

faker_rust/default/
job.rs

1//! Job generator - generates random job titles and fields
2
3use crate::base::sample;
4use crate::locale::fetch_locale;
5
6/// Generate a random job field
7pub fn field() -> String {
8    fetch_locale("job.field", "en")
9        .map(|v| sample(&v))
10        .unwrap_or_else(|| "Technology".to_string())
11}
12
13/// Generate a random job seniority level
14pub fn seniority() -> String {
15    fetch_locale("job.seniority", "en")
16        .map(|v| sample(&v))
17        .unwrap_or_else(|| "Senior".to_string())
18}
19
20/// Generate a random job position
21pub fn position() -> String {
22    fetch_locale("job.position", "en")
23        .map(|v| sample(&v))
24        .unwrap_or_else(|| "Manager".to_string())
25}
26
27/// Generate a random job title
28pub fn title() -> String {
29    let config = crate::config::FakerConfig::current();
30    let choice = config.rand_usize(3);
31
32    match choice {
33        0 => format!("{} {}", seniority(), position()),
34        1 => format!("{} {}", position(), field()),
35        _ => format!("{} {}", seniority(), field()),
36    }
37}
38
39/// Generate a random key skill
40pub fn key_skill() -> String {
41    fetch_locale("job.key_skill", "en")
42        .map(|v| sample(&v))
43        .unwrap_or_else(|| "Communication".to_string())
44}