Skip to main content

faker_rust/default/
relationship.rs

1//! Relationship generator - generates random relationship terms
2
3use crate::base::sample;
4use crate::locale::fetch_locale;
5
6/// Generate a direct familial relationship term
7pub fn direct() -> String {
8    fetch_locale("relationship.familial.direct", "en")
9        .map(|v| sample(&v))
10        .unwrap_or_else(|| "Father".to_string())
11}
12
13/// Generate an extended familial relationship term
14pub fn extended() -> String {
15    fetch_locale("relationship.familial.extended", "en")
16        .map(|v| sample(&v))
17        .unwrap_or_else(|| "Grandfather".to_string())
18}
19
20/// Generate an in-law relationship term
21pub fn in_law() -> String {
22    fetch_locale("relationship.in_law", "en")
23        .map(|v| sample(&v))
24        .unwrap_or_else(|| "Father-in-law".to_string())
25}
26
27/// Generate a spouse relationship term
28pub fn spouse() -> String {
29    fetch_locale("relationship.spouse", "en")
30        .map(|v| sample(&v))
31        .unwrap_or_else(|| "Husband".to_string())
32}
33
34/// Generate a parent relationship term
35pub fn parent() -> String {
36    fetch_locale("relationship.parent", "en")
37        .map(|v| sample(&v))
38        .unwrap_or_else(|| "Father".to_string())
39}
40
41/// Generate a sibling relationship term
42pub fn sibling() -> String {
43    fetch_locale("relationship.sibling", "en")
44        .map(|v| sample(&v))
45        .unwrap_or_else(|| "Sister".to_string())
46}