Skip to content
Snippets Groups Projects
Commit fb0f2da3 authored by Federico Lolli's avatar Federico Lolli
Browse files

[Rust] Add Rust integration

parent 59841d5e
Branches
No related tags found
1 merge request!24Rust library integration
...@@ -34,3 +34,7 @@ ...@@ -34,3 +34,7 @@
# ide folder & virtual environments # ide folder & virtual environments
.venv/ .venv/
.vscode .vscode
# rust specific
target
Cargo.lock
# mavlink_skyward_lib # mavlink_skyward_lib
Repo containing Skyward's implementation of the Mavlink protocol: Repo containing Skyward's implementation of the Mavlink protocol:
* `message_definitions` - XML files describing the available messages * `message_definitions` - XML files describing the available messages
* `mavlink_lib ` - corresponding C header files, generated with `pymavlink` * `mavlink_lib ` - corresponding C header files, generated with `pymavlink`
* `mavlink_rust` - Rust library of the Mavlink protocol
[package]
name = "skyward_mavlink"
version = "0.1.0"
authors = ["Federico Lolli <federico.lolli@skywarder.eu>"]
edition = "2021"
license = "MIT"
[dependencies]
num-traits = { version = "0.2.18", default-features = false }
num-derive = "0.4.2"
bitflags = "2.4.2"
serde = { version = "1.0.197", optional = true }
serde_arrays = { version = "0.1.0", optional = true }
[dependencies.mavlink-core]
git = "https://github.com/mavlink/rust-mavlink.git"
rev = "8d61f75ac4a5bf04cd9401d9073244118117db5f"
[build-dependencies.mavlink-bindgen]
git = "https://github.com/mavlink/rust-mavlink.git"
rev = "8d61f75ac4a5bf04cd9401d9073244118117db5f"
[features]
default = ["lyra"]
lyra = []
gemini = []
pyxis = []
lynx = []
hermes = []
r2a = []
test = []
serde = ["dep:serde", "dep:serde_arrays"]
#![recursion_limit = "256"]
use std::env;
pub fn main() {
let out_path = env::var("OUT_DIR").unwrap();
let result = mavlink_bindgen::generate("../message_definitions", out_path)
.expect("Failed to generate Rust MAVLink bindings");
mavlink_bindgen::format_generated_code(&result);
mavlink_bindgen::emit_cargo_build_messages(&result);
}
mod bindings {
include!(concat!(env!("OUT_DIR"), "/mod.rs"));
}
pub use bindings::*;
pub use mavlink_core as mavlink;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment