1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
mod level;
mod project;
mod tileset;

pub use level::*;
pub use project::*;

use nanoserde::DeJson;

#[derive(Clone, Debug, DeJson, PartialEq)]
pub struct Vec2f32 {
    pub x: f32,
    pub y: f32,
}

#[derive(Clone, Debug, DeJson, PartialEq)]
pub struct Vec2i32 {
    pub x: i32,
    pub y: i32,
}

#[derive(Debug, Clone)]
pub struct OgmoError {
    message: String,
}
impl OgmoError {
    pub fn new<T: Into<String>>(msg: T) -> Self {
        OgmoError {
            message: msg.into(),
        }
    }
}

impl std::convert::From<nanoserde::DeJsonErr> for OgmoError {
    fn from(e: nanoserde::DeJsonErr) -> OgmoError {
        OgmoError {
            message: e.to_string(),
        }
    }
}