diff -r 8d9e3af8abce -r 7d3b94cdc3c4 rust/hedgewars-engine/src/main.rs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rust/hedgewars-engine/src/main.rs Wed Nov 07 22:04:17 2018 +0100 @@ -0,0 +1,26 @@ +extern crate libloading; + +use libloading::{Library, Symbol}; +use std::ops::Deref; + +struct EngineInstance {} + +struct Engine<'a> { + protocol_version: Symbol<'a, unsafe fn() -> u32>, + start_engine: Symbol<'a, unsafe fn() -> *mut EngineInstance>, + cleanup: Symbol<'a, unsafe fn(engine_state: *mut EngineInstance)>, +} + +fn main() { + let hwlib = Library::new("libhedgewars_engine.so").unwrap(); + + unsafe { + let engine = Engine { + protocol_version: hwlib.get(b"protocol_version").unwrap(), + start_engine: hwlib.get(b"start_engine").unwrap(), + cleanup: hwlib.get(b"cleanup").unwrap(), + }; + + println!("Hedgewars engine, protocol version {}", engine.protocol_version.deref()()); + } +}