faker_rust/default/
lorem_flickr.rs1use crate::config::FakerConfig;
4
5pub fn image() -> String {
7 let config = FakerConfig::current();
8 let width = config.rand_range(300, 800);
9 let height = config.rand_range(300, 800);
10 let keywords = vec![
11 "abstract", "animals", "business", "cats", "city", "food",
12 "nightlife", "fashion", "people", "nature", "sports", "technics",
13 "transport", "technics", "abstract", "people",
14 ];
15 let keyword = keywords[(config.rand_range(0, keywords.len() as u32)) as usize];
16
17 format!("https://loremflickr.com/{}/{}/{}", width, height, keyword)
18}
19
20pub fn grayscale() -> String {
22 format!("{}/g", image())
23}
24
25pub fn sized(width: u32, height: u32) -> String {
27 let config = FakerConfig::current();
28 let keywords = ["abstract", "animals", "business", "cats", "city", "food"];
29 let keyword = keywords[(config.rand_range(0, keywords.len() as u32)) as usize];
30
31 format!("https://loremflickr.com/{}/{}/{}", width, height, keyword)
32}
33
34#[cfg(test)]
35mod tests {
36 use super::*;
37
38 #[test]
39 fn test_image() {
40 let url = image();
41 assert!(url.starts_with("https://loremflickr.com/"));
42 }
43
44 #[test]
45 fn test_grayscale() {
46 let url = grayscale();
47 assert!(url.contains("/g"));
48 }
49
50 #[test]
51 fn test_sized() {
52 let url = sized(100, 200);
53 assert!(url.contains("/100/200/"));
54 }
55}