use crate::error::get_last_error;
use crate::string::StringParam;
use crate::{with_spice_lock_or_panic, Error};
use cspice_sys::{furnsh_c, unload_c};
pub fn furnish<'f, F: Into<StringParam<'f>>>(file: F) -> Result<(), Error> {
with_spice_lock_or_panic(|| {
unsafe {
furnsh_c(file.into().as_mut_ptr());
};
get_last_error()
})
}
pub fn unload<'f, F: Into<StringParam<'f>>>(file: F) -> Result<(), Error> {
with_spice_lock_or_panic(|| {
unsafe {
unload_c(file.into().as_mut_ptr());
};
get_last_error()
})
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_furnish() {
let error = furnish("NON_EXISTENT_FILE").err().unwrap();
assert_eq!(error.short_message, "SPICE(NOSUCHFILE)");
}
}