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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/*
* Rust-SFML - Copyright (c) 2013 Letang Jeremy.
*
* The original software, SFML library, is provided by Laurent Gomila.
*
* This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from
* the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not claim
*    that you wrote the original software. If you use this software in a product,
*    an acknowledgment in the product documentation would be appreciated but is
*    not required.
*
* 2. Altered source versions must be plainly marked as such, and must not be
*    misrepresented as being the original software.
*
* 3. This notice may not be removed or altered from any source distribution.
*/

mod vector2;
mod vector3;
mod rect;

pub use vector2::*;
pub use vector3::*;
pub use rect::{Rect, FloatRect, IntRect};

#[repr(C)]
#[derive(PartialEq, Eq, Clone, Copy)]
pub enum sfBool {
    SFFALSE = 0,
    SFTRUE = 1
}

impl sfBool {
    #[inline(always)]
    pub fn to_bool(&self) -> bool {
        match *self {
            sfBool::SFFALSE => false,
            sfBool::SFTRUE => true
        }
    }

    #[inline(always)]
    pub fn from_bool(b: bool) -> sfBool {
        match b {
            true => sfBool::SFTRUE,
            false => sfBool::SFFALSE
        }
    }
}