35 lines
1.2 KiB
Rust
35 lines
1.2 KiB
Rust
mod ps {
|
|
#[repr(C)]
|
|
#[derive(Debug)]
|
|
pub struct PowerSocket {
|
|
power_rate: f32,
|
|
on: bool,
|
|
}
|
|
// #[link(name = "power_socket_lib", kind = "static")]
|
|
unsafe extern "C" {
|
|
pub fn power_socket_new(power_rate: f32, on: bool) -> PowerSocket;
|
|
|
|
pub fn power_socket_is_on(power_socket: &PowerSocket) -> bool;
|
|
|
|
pub fn power_socket_set_on(power_socket: &mut PowerSocket, on: bool);
|
|
|
|
pub fn power_socket_get_power(power_socket: &PowerSocket) -> f32;
|
|
}
|
|
}
|
|
|
|
use ps::*;
|
|
|
|
fn main() {
|
|
let mut power_socket = unsafe { power_socket_new(12.0, false) };
|
|
println!("call power_socket_new -> {:?}", power_socket);
|
|
|
|
println!("call power_socket_is_on -> {:?}", unsafe { power_socket_is_on(&power_socket) });
|
|
println!("call power_socket_get_power -> {:?}", unsafe { power_socket_get_power(&power_socket) });
|
|
|
|
unsafe { power_socket_set_on(&mut power_socket, true) };
|
|
println!("call power_socket_set_on(&ref, true)");
|
|
|
|
println!("call power_socket_is_on -> {:?}", unsafe { power_socket_is_on(&power_socket) });
|
|
println!("call power_socket_get_power -> {:?}", unsafe { power_socket_get_power(&power_socket) });
|
|
}
|