// rust_g.dm - DM API for rust_g extension library // // To configure, create a `rust_g.config.dm` and set what you care about from // the following options: // // #define RUST_G "path/to/rust_g" // Override the .dll/.so detection logic with a fixed path or with detection // logic of your own. // // #define RUSTG_OVERRIDE_BUILTINS // Enable replacement rust-g functions for certain builtins. Off by default. #ifndef RUST_G // Default automatic RUST_G detection. // On Windows, looks in the standard places for `rust_g.dll`. // On Linux, looks in `.`, `$LD_LIBRARY_PATH`, and `~/.byond/bin` for either of // `librust_g.so` (preferred) or `rust_g` (old). /* This comment bypasses grep checks */ /var/__rust_g /proc/__detect_rust_g() if(world.system_type == UNIX) if(fexists("./librust_g.so")) // No need for LD_LIBRARY_PATH badness. return __rust_g = "./librust_g.so" else if(fexists("./rust_g")) // Old dumb filename. return __rust_g = "./rust_g" else if(fexists("[world.GetConfig("env", "HOME")]/.byond/bin/rust_g")) // Old dumb filename in `~/.byond/bin`. return __rust_g = "rust_g" else // It's not in the current directory, so try others return __rust_g = "librust_g.so" else return __rust_g = "rust_g.dll" #define RUST_G (__rust_g || __detect_rust_g()) #endif // Handle 515 call() -> call_ext() changes #if DM_VERSION >= 515 #define RUSTG_CALL call_ext #else #define RUSTG_CALL call #endif /// Gets the version of rust_g /proc/rustg_get_version() return RUSTG_CALL(RUST_G, "get_version")() // Jobs Defines // #define RUSTG_JOB_NO_RESULTS_YET "NO RESULTS YET" #define RUSTG_JOB_NO_SUCH_JOB "NO SUCH JOB" #define RUSTG_JOB_ERROR "JOB PANICKED" // SQL Operations // #define rustg_sql_connect_pool(options) RUSTG_CALL(RUST_G, "sql_connect_pool")(options) #define rustg_sql_query_async(handle, query, params) RUSTG_CALL(RUST_G, "sql_query_async")(handle, query, params) #define rustg_sql_query_blocking(handle, query, params) RUSTG_CALL(RUST_G, "sql_query_blocking")(handle, query, params) #define rustg_sql_connected(handle) RUSTG_CALL(RUST_G, "sql_connected")(handle) #define rustg_sql_disconnect_pool(handle) RUSTG_CALL(RUST_G, "sql_disconnect_pool")(handle) #define rustg_sql_check_query(job_id) RUSTG_CALL(RUST_G, "sql_check_query")("[job_id]")