osm_is_area/relation.rs
1/// Returns true if the given relation is an area.
2///
3/// A relation is an area when it has a tag "type" with value "multipolygon".
4/// ```
5/// use osm_is_area;
6///
7/// let tags = vec![
8/// (r"type", r"multipolygon")
9/// ];
10/// let members = vec![1, 3, 2, 1];
11///
12/// let is_area = osm_is_area::relation(&tags, &members);
13/// assert_eq!(true, is_area);
14/// ```
15pub fn relation<X>(tags: &[(&str, &str)], members: &[X]) -> bool where X: PartialEq {
16 if members.len() == 0 {
17 return false;
18 }
19 let opt = tags
20 .into_iter()
21 .find(|tag| tag.0 == "type" && tag.1 == "multipolygon");
22 match opt {
23 Some(_) => return true,
24 None => return false,
25 }
26}