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}