rtop_dev 0.2.2

Development librairy for creating pluign for RtopRS
Documentation

Quick Example

Rtop let you create plugin for adding custom widgets. Firstly, create a new project:

cargo new --lib MyPlugin

After that, update your Cargo.toml file. It should look like that:

[package]
name = "MyPlugin"
version = "0.1.0"
edition = "2021"

[dependencies]
rtop_dev = "^0.2.0"

[lib]
name = "my_plugin"
crate-type = ["dylib"]

Then, edit your src/lib.rs to have somethings like this:

struct FooWidget {}

impl rtop_dev::plugin::Plugin for FooWidget {
    fn display(&mut self, _height: i32, _width: i32) -> String {
        String::from("Hello World RTop!")
    }
}

#[no_mangle]
pub extern "Rust" fn init_foo() -> (Box<dyn rtop_dev::plugin::Plugin>, bool) {
    (Box::new(FooWidget{}), false)
}

To build your lib, simply run:

cargo build --lib --release

Your plugin should be located here target/release/libmy_plugin.so.

Remember these things, For each widget you want to create, you must make a function called init_{WIDGET} which return a Box<dyn rtop_dev::plugin::Plugin and a bool that defines if your widget should receive input from the user or not. Don't forget to add #[no_mangle] in front of each init function. Otherwise, it will not be exported

Contributors

License

RTop | Mozilla Public License 2.0