use std::os::raw::{c_char, c_double, c_int};
#[link(name = "swe")]
extern "C" {
pub fn swe_set_ephe_path(path: *const c_char);
pub fn swe_close();
pub fn swe_set_jpl_file(fname: *const c_char);
pub fn swe_version(s_version: *mut c_char) -> *mut c_char;
pub fn swe_get_library_path(spath: *mut c_char) -> *mut c_char;
pub fn swe_calc_ut(
tjd_ut: c_double,
ipl: c_int,
iflag: c_int,
xx: *mut c_double,
serr: *mut c_char,
) -> c_int;
pub fn swe_pheno_ut(
tjd_ut: c_double,
ipl: c_int,
iflag: c_int,
atr: *mut c_double,
serr: *mut c_char,
) -> c_int;
pub fn swe_julday(
year: c_int,
month: c_int,
day: c_int,
hour: c_double,
gregflag: c_int,
) -> c_double;
pub fn swe_utc_time_zone(
iyear: c_int,
imonth: c_int,
iday: c_int,
ihour: c_int,
imin: c_int,
dsec: c_double,
d_timezone: c_double,
iyear_out: *mut c_int,
imonth_out: *mut c_int,
iday_out: *mut c_int,
ihour_out: *mut c_int,
imin_out: *mut c_int,
dsec_out: *mut c_double,
);
pub fn swe_utc_to_jd(
iyear: c_int,
imonth: c_int,
iday: c_int,
ihour: c_int,
imin: c_int,
dsec: c_double,
gregflag: c_int,
dret: *mut c_double,
serr: *mut c_char,
) -> c_int;
pub fn swe_house_name(hsys: c_int) -> *mut c_char;
pub fn swe_houses_ex(
tjd_ut: c_double,
iflag: c_int,
geolat: c_double,
geolon: c_double,
hsys: c_int,
cusps: *mut c_double,
ascmc: *mut c_double,
) -> c_int;
pub fn swe_degnorm(x: c_double) -> c_double;
pub fn swe_radnorm(x: c_double) -> c_double;
pub fn swe_split_deg(
ddeg: c_double,
roundflag: c_int,
ideg: *mut c_int,
imin: *mut c_int,
isec: *mut c_int,
cdegfr: *mut c_double,
isgn: *mut c_int,
) -> c_double;
}