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
//generic macro for use by debug/warning/error variants
#[macro_export]
macro_rules! as_send_message {
    (
        $engine: expr,
        $msg_type: expr,
        $message: expr
    ) => {
        //TODO: do something with result
        let _result = angelscript::engine::ScriptEngine::send_message(
            &mut $engine, 
            file!(), line!(), column!(), 
            $msg_type, 
            $message);
    };
}

#[macro_export]
macro_rules! as_log_debug {
    ( $engine: expr, $message: expr ) => {
        angelscript::as_send_message!($engine, angelscript_sys::c_types::asEMsgType_asMSGTYPE_INFORMATION, $message);
    }
}

#[macro_export]
macro_rules! as_log_warning {
    ( $engine: expr, $message: expr ) => {
        angelscript::as_send_message!($engine, angelscript_sys::c_types::asEMsgType_asMSGTYPE_WARNING, $message);
    }
}

#[macro_export]
macro_rules! as_log_error {
    ( $engine: expr, $message: expr ) => {
        angelscript::as_send_message!($engine, angelscript_sys::c_types::asEMsgType_asMSGTYPE_ERROR, $message);
    }
}

#[macro_export]
macro_rules! check_ok {
    ( $ret_code: expr ) => {
        let code: angelscript::types::EReturnCodes = $ret_code;
        match code {
            angelscript::types::EReturnCodes::Success => (),
            _ => panic!("AngelScript failure!  r = {}", code as i32)
        }
    }
}