use crate::{
baseline::{self, ffi},
ffi::{ffi_create_c_array, ffi_free_c_array},
MetafitsContext,
};
#[repr(C)]
pub struct Baseline {
pub ant1_index: usize,
pub ant2_index: usize,
}
impl Baseline {
pub fn populate_array(metafits_context: &MetafitsContext) -> (*mut ffi::Baseline, usize) {
let mut item_vec: Vec<ffi::Baseline> = Vec::new();
for item in metafits_context.baselines.iter() {
let out_item = {
let baseline::Baseline {
ant1_index,
ant2_index,
} = item;
baseline::ffi::Baseline {
ant1_index: *ant1_index,
ant2_index: *ant2_index,
}
};
item_vec.push(out_item);
}
ffi_create_c_array(item_vec)
}
pub fn destroy_array(items_ptr: *mut ffi::Baseline, items_len: usize) {
ffi_free_c_array(items_ptr, items_len);
}
}