osmpbf_parser/
element.rs

1pub type Tags = Vec<(String,String)>;
2
3#[derive(Debug,Clone,PartialEq)]
4pub enum Element {
5  Node(Node),
6  Way(Way),
7  Relation(Relation),
8}
9
10#[derive(Debug,Clone,PartialEq)]
11pub struct Info {
12  pub version: i32,
13  pub timestamp: Option<i64>,
14  pub changeset: Option<i64>,
15  pub uid: Option<i32>,
16  pub user: Option<String>,
17  pub visible: Option<bool>,
18}
19
20#[derive(Debug,Clone,PartialEq)]
21pub struct Node {
22  pub id: i64,
23  pub tags: Tags,
24  pub info: Option<Info>,
25  pub lon: f64,
26  pub lat: f64,
27}
28
29#[derive(Debug,Clone,PartialEq)]
30pub struct Way {
31  pub id: i64,
32  pub tags: Tags,
33  pub info: Option<Info>,
34  pub refs: Vec<i64>,
35}
36
37#[derive(Debug,Clone,PartialEq)]
38pub struct Relation {
39  pub id: i64,
40  pub tags: Tags,
41  pub info: Option<Info>,
42  pub members: Vec<Member>,
43}
44
45#[derive(Debug,Clone,PartialEq)]
46pub struct Member {
47  pub id: i64,
48  pub role: String,
49  pub member_type: MemberType,
50}
51
52#[derive(Debug,Clone,PartialEq)]
53pub enum MemberType {
54  Node,
55  Way,
56  Relation,
57}