no more BindgenTy1

This commit is contained in:
Josh Mitchell
2020-11-15 16:48:52 +11:00
parent ecccd6aca4
commit 8f34cdfcdf
4 changed files with 24 additions and 30 deletions

View File

@@ -6,21 +6,20 @@ pub struct XDRFILE {
_unused: [u8; 0],
}
pub type BindgenTy1 = u32;
pub const exdrOK: BindgenTy1 = 0;
pub const exdrHEADER: BindgenTy1 = 1;
pub const exdrSTRING: BindgenTy1 = 2;
pub const exdrDOUBLE: BindgenTy1 = 3;
pub const exdrINT: BindgenTy1 = 4;
pub const exdrFLOAT: BindgenTy1 = 5;
pub const exdrUINT: BindgenTy1 = 6;
pub const exdr3DX: BindgenTy1 = 7;
pub const exdrCLOSE: BindgenTy1 = 8;
pub const exdrMAGIC: BindgenTy1 = 9;
pub const exdrNOMEM: BindgenTy1 = 10;
pub const exdrENDOFFILE: BindgenTy1 = 11;
pub const exdrFILENOTFOUND: BindgenTy1 = 12;
pub const exdrNR: BindgenTy1 = 13;
pub const exdrOK: i32 = 0;
pub const exdrHEADER: i32 = 1;
pub const exdrSTRING: i32 = 2;
pub const exdrDOUBLE: i32 = 3;
pub const exdrINT: i32 = 4;
pub const exdrFLOAT: i32 = 5;
pub const exdrUINT: i32 = 6;
pub const exdr3DX: i32 = 7;
pub const exdrCLOSE: i32 = 8;
pub const exdrMAGIC: i32 = 9;
pub const exdrNOMEM: i32 = 10;
pub const exdrENDOFFILE: i32 = 11;
pub const exdrFILENOTFOUND: i32 = 12;
pub const exdrNR: i32 = 13;
extern "C" {
pub static mut exdr_message: [*mut ::std::os::raw::c_char; 13usize];

View File

@@ -65,7 +65,7 @@ mod tests {
unsafe {
let code = read_trr_nframes(path.as_ptr(), &mut nframes);
assert!(code as u32 == exdrOK);
assert!(code == exdrOK);
}
assert!(nframes == 38, "{:?}", nframes);
Ok(())
@@ -106,7 +106,7 @@ mod tests {
v.as_ptr() as *mut Rvec,
f.as_ptr() as *mut Rvec,
);
assert!(write_code as u32 == exdrOK);
assert!(write_code == exdrOK);
xdrfile_close(xdr);
}
@@ -134,7 +134,7 @@ mod tests {
v2.as_ptr() as *mut Rvec,
f2.as_ptr() as *mut Rvec,
);
assert!(read_code as u32 == exdrOK);
assert!(read_code == exdrOK);
xdrfile_close(xdr);
}

View File

@@ -61,7 +61,7 @@ mod tests {
unsafe {
let code = read_xtc_nframes(path.as_ptr(), &mut nframes);
assert!(code as u32 == exdrOK);
assert!(code == exdrOK);
}
assert!(nframes == 38, "{:?}", nframes);
Ok(())
@@ -96,7 +96,7 @@ mod tests {
x.as_ptr() as *mut Rvec,
1000.0,
);
assert!(write_code as u32 == exdrOK);
assert!(write_code == exdrOK);
xdrfile_close(xdr);
}
@@ -119,7 +119,7 @@ mod tests {
x2.as_ptr() as *mut Rvec,
&mut prec,
);
assert!(read_code as u32 == exdrOK);
assert!(read_code == exdrOK);
xdrfile_close(xdr);
}

View File

@@ -1,7 +1,6 @@
use crate::c_abi;
use crate::FileMode;
use crate::Frame;
use std::convert::TryInto;
use std::error::Error as StdError;
use std::path::{Path, PathBuf};
@@ -206,7 +205,7 @@ pub enum ErrorCode {
/// Failed to seek within file
ExdrNr,
/// Something unexpected happened
UnmatchedCode(c_abi::xdrfile::BindgenTy1),
UnmatchedCode(i32),
}
impl ErrorCode {
@@ -216,13 +215,9 @@ impl ErrorCode {
}
}
impl<T> From<T> for ErrorCode
where
T: TryInto<c_abi::xdrfile::BindgenTy1>,
<T as TryInto<c_abi::xdrfile::BindgenTy1>>::Error: std::fmt::Debug,
{
fn from(code: T) -> Self {
match code.try_into().expect("C API return code was out of range") {
impl From<i32> for ErrorCode {
fn from(code: i32) -> Self {
match code {
c_abi::xdrfile::exdrOK => Self::ExdrOk,
c_abi::xdrfile::exdrHEADER => Self::ExdrHeader,
c_abi::xdrfile::exdrSTRING => Self::ExdrString,