Skip to main content

faker_rust/default/
lorem_flickr.rs

1//! Lorem Flickr generator - placeholder image URLs
2
3use crate::config::FakerConfig;
4
5/// Generate a random Lorem Flickr image URL
6pub 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
20/// Generate a Lorem Flickr URL with grayscale
21pub fn grayscale() -> String {
22    format!("{}/g", image())
23}
24
25/// Generate a Lorem Flickr URL with specific dimensions
26pub 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}