jude 0.1.2

dynamic reloading of shared libraries
Documentation
use std::{ffi::OsString, thread, time::Duration};

use jude::jude;

jude! (
    #[repr(C)]
    #[derive(Debug, Clone)]
    pub struct JudePlugin {
        pub word: String = String::from("example string"),
        pub one: u8 = 1,
        pub two: f32 = 2.0,
        pub tree: bool = true,

        pub fn who_am_i(&self),
    }
);

fn main() -> Result<(), libloading::Error> {
    let mut lib =
        JudePlugin::_load_from(OsString::from("target/debug/examples/libjude_plugin.dylib"))?;

    loop {
        if let Ok(true) = lib._is_changed() {
            if let Err(e) = lib._reload() {
                println!("{:?}", e);
                break;
            }
        }

        lib.who_am_i();

        thread::sleep(Duration::from_secs(1));
    }

    Ok(())
}