use crate::{
ffi::{ffi_create_c_array, ffi_free_c_array},
timestep::{self, ffi},
};
#[repr(C)]
pub struct TimeStep {
pub unix_time_ms: u64,
pub gps_time_ms: u64,
}
impl TimeStep {
pub fn populate_array(timesteps: &[crate::timestep::TimeStep]) -> (*mut ffi::TimeStep, usize) {
let mut item_vec: Vec<ffi::TimeStep> = Vec::new();
for item in timesteps {
let out_item = {
let timestep::TimeStep {
unix_time_ms,
gps_time_ms,
} = item;
timestep::ffi::TimeStep {
unix_time_ms: *unix_time_ms,
gps_time_ms: *gps_time_ms,
}
};
item_vec.push(out_item);
}
ffi_create_c_array(item_vec)
}
pub fn destroy_array(items_ptr: *mut ffi::TimeStep, items_len: usize) {
ffi_free_c_array(items_ptr, items_len);
}
}