Move C API to separate Rust module
This commit is contained in:
parent
7a82bfad36
commit
363cbfc894
|
@ -0,0 +1,138 @@
|
|||
use crate::*;
|
||||
|
||||
use std::os::raw::*;
|
||||
|
||||
/***************
|
||||
* Constraints *
|
||||
***************/
|
||||
|
||||
#[no_mangle]
|
||||
extern "C" fn constraints_border_width(border_width: c_int) -> c_int {
|
||||
constraints::border_width(border_width)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
extern "C" fn constraints_default_clients_in_master(
|
||||
default_clients_in_master: c_int,
|
||||
) -> c_int {
|
||||
constraints::default_clients_in_master(default_clients_in_master)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
extern "C" fn constraints_default_master_area_factor(
|
||||
default_master_area_factor: c_float,
|
||||
) -> c_float {
|
||||
constraints::default_master_area_factor(default_master_area_factor)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
extern "C" fn constraints_gap_size(gap_size: c_int) -> c_int {
|
||||
constraints::gap_size(gap_size)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
extern "C" fn constraints_master_area_factor(
|
||||
master_area_factor: c_float,
|
||||
) -> c_float {
|
||||
constraints::master_area_factor(master_area_factor)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
extern "C" fn constraints_max_clients_in_master(
|
||||
max_clients_in_master: c_int,
|
||||
) -> c_int {
|
||||
constraints::max_clients_in_master(max_clients_in_master)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
extern "C" fn constraints_snap_distance(snap_distance: c_uint) -> c_uint {
|
||||
constraints::snap_distance(snap_distance)
|
||||
}
|
||||
|
||||
/********
|
||||
* Geom *
|
||||
********/
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn position_init(position: *mut geom::Position) {
|
||||
*position = Default::default();
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn sizes_init(sizes: &mut geom::Sizes) {
|
||||
*sizes = Default::default();
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn basic_geom_init(basic_geom: &mut geom::BasicGeom) {
|
||||
*basic_geom = Default::default();
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn win_geom_init(win_geom: &mut geom::WinGeom) {
|
||||
*win_geom = Default::default();
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn position_init_from_args(
|
||||
position: *mut geom::Position,
|
||||
x: c_int,
|
||||
y: c_int,
|
||||
) {
|
||||
*position = geom::Position::new(x, y);
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn sizes_init_from_args(
|
||||
sizes: *mut geom::Sizes,
|
||||
width: c_int,
|
||||
height: c_int,
|
||||
) {
|
||||
*sizes = geom::Sizes::new(width, height);
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn basic_geom_init_from_args(
|
||||
basic_geom: *mut geom::BasicGeom,
|
||||
x: c_int,
|
||||
y: c_int,
|
||||
width: c_int,
|
||||
height: c_int,
|
||||
) {
|
||||
*basic_geom = geom::BasicGeom::new(
|
||||
geom::Position::new(x, y),
|
||||
geom::Sizes::new(width, height),
|
||||
);
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn win_geom_init_from_args(
|
||||
win_geom: *mut geom::WinGeom,
|
||||
x: c_int,
|
||||
y: c_int,
|
||||
width: c_int,
|
||||
height: c_int,
|
||||
border_width: c_int,
|
||||
) {
|
||||
*win_geom = geom::WinGeom::new(
|
||||
geom::BasicGeom::new(
|
||||
geom::Position::new(x, y),
|
||||
geom::Sizes::new(width, height),
|
||||
),
|
||||
border_width,
|
||||
);
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn win_geom_total_width(
|
||||
win_geom: *const geom::WinGeom,
|
||||
) -> c_int {
|
||||
(*win_geom).total_sizes().width()
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn win_geom_total_height(
|
||||
win_geom: *const geom::WinGeom,
|
||||
) -> c_int {
|
||||
(*win_geom).total_sizes().height()
|
||||
}
|
138
src/lib.rs
138
src/lib.rs
|
@ -1,139 +1,3 @@
|
|||
mod api;
|
||||
mod constraints;
|
||||
pub mod geom;
|
||||
|
||||
use std::os::raw::*;
|
||||
|
||||
/***************
|
||||
* Constraints *
|
||||
***************/
|
||||
|
||||
#[no_mangle]
|
||||
extern "C" fn constraints_border_width(border_width: c_int) -> c_int {
|
||||
constraints::border_width(border_width)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
extern "C" fn constraints_default_clients_in_master(
|
||||
default_clients_in_master: c_int,
|
||||
) -> c_int {
|
||||
constraints::default_clients_in_master(default_clients_in_master)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
extern "C" fn constraints_default_master_area_factor(
|
||||
default_master_area_factor: c_float,
|
||||
) -> c_float {
|
||||
constraints::default_master_area_factor(default_master_area_factor)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
extern "C" fn constraints_gap_size(gap_size: c_int) -> c_int {
|
||||
constraints::gap_size(gap_size)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
extern "C" fn constraints_master_area_factor(
|
||||
master_area_factor: c_float,
|
||||
) -> c_float {
|
||||
constraints::master_area_factor(master_area_factor)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
extern "C" fn constraints_max_clients_in_master(
|
||||
max_clients_in_master: c_int,
|
||||
) -> c_int {
|
||||
constraints::max_clients_in_master(max_clients_in_master)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
extern "C" fn constraints_snap_distance(snap_distance: c_uint) -> c_uint {
|
||||
constraints::snap_distance(snap_distance)
|
||||
}
|
||||
|
||||
/********
|
||||
* Geom *
|
||||
********/
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn position_init(position: *mut geom::Position) {
|
||||
*position = Default::default();
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn sizes_init(sizes: &mut geom::Sizes) {
|
||||
*sizes = Default::default();
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn basic_geom_init(basic_geom: &mut geom::BasicGeom) {
|
||||
*basic_geom = Default::default();
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn win_geom_init(win_geom: &mut geom::WinGeom) {
|
||||
*win_geom = Default::default();
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn position_init_from_args(
|
||||
position: *mut geom::Position,
|
||||
x: c_int,
|
||||
y: c_int,
|
||||
) {
|
||||
*position = geom::Position::new(x, y);
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn sizes_init_from_args(
|
||||
sizes: *mut geom::Sizes,
|
||||
width: c_int,
|
||||
height: c_int,
|
||||
) {
|
||||
*sizes = geom::Sizes::new(width, height);
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn basic_geom_init_from_args(
|
||||
basic_geom: *mut geom::BasicGeom,
|
||||
x: c_int,
|
||||
y: c_int,
|
||||
width: c_int,
|
||||
height: c_int,
|
||||
) {
|
||||
*basic_geom = geom::BasicGeom::new(
|
||||
geom::Position::new(x, y),
|
||||
geom::Sizes::new(width, height),
|
||||
);
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn win_geom_init_from_args(
|
||||
win_geom: *mut geom::WinGeom,
|
||||
x: c_int,
|
||||
y: c_int,
|
||||
width: c_int,
|
||||
height: c_int,
|
||||
border_width: c_int,
|
||||
) {
|
||||
*win_geom = geom::WinGeom::new(
|
||||
geom::BasicGeom::new(
|
||||
geom::Position::new(x, y),
|
||||
geom::Sizes::new(width, height),
|
||||
),
|
||||
border_width,
|
||||
);
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn win_geom_total_width(
|
||||
win_geom: *const geom::WinGeom,
|
||||
) -> c_int {
|
||||
(*win_geom).total_sizes().width()
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
unsafe extern "C" fn win_geom_total_height(
|
||||
win_geom: *const geom::WinGeom,
|
||||
) -> c_int {
|
||||
(*win_geom).total_sizes().height()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue