Skip to main content

faker_rust/default/
chess.rs

1//! Chess generator - generates random chess-related data
2
3use crate::base::sample;
4use crate::locale::fetch_locale;
5
6/// Generate a random chess player name
7pub fn player() -> String {
8    fetch_locale("chess.players", "en")
9        .map(|v| sample(&v))
10        .unwrap_or_else(|| "Magnus Carlsen".to_string())
11}
12
13/// Generate a random chess tournament name
14pub fn tournament() -> String {
15    fetch_locale("chess.tournaments", "en")
16        .map(|v| sample(&v))
17        .unwrap_or_else(|| "Candidates Tournament".to_string())
18}
19
20/// Generate a random chess opening name
21pub fn opening() -> String {
22    fetch_locale("chess.openings", "en")
23        .map(|v| sample(&v))
24        .unwrap_or_else(|| "Sicilian Defense".to_string())
25}
26
27/// Generate a random chess title (GM, IM, etc.)
28pub fn title() -> String {
29    fetch_locale("chess.titles", "en")
30        .map(|v| sample(&v))
31        .unwrap_or_else(|| "Grandmaster".to_string())
32}
33
34#[cfg(test)]
35mod tests {
36    use super::*;
37
38    #[test]
39    fn test_player() {
40        let p = player();
41        assert!(!p.is_empty());
42    }
43}