From 8f34cdfcdf683c1c12d2b6e730ab896ad26c3db9 Mon Sep 17 00:00:00 2001 From: Josh Mitchell Date: Sun, 15 Nov 2020 16:48:52 +1100 Subject: [PATCH] no more BindgenTy1 --- src/c_abi/xdrfile.rs | 29 ++++++++++++++--------------- src/c_abi/xdrfile_trr.rs | 6 +++--- src/c_abi/xdrfile_xtc.rs | 6 +++--- src/errors.rs | 13 ++++--------- 4 files changed, 24 insertions(+), 30 deletions(-) diff --git a/src/c_abi/xdrfile.rs b/src/c_abi/xdrfile.rs index 8c8992c..7c4ad01 100644 --- a/src/c_abi/xdrfile.rs +++ b/src/c_abi/xdrfile.rs @@ -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]; diff --git a/src/c_abi/xdrfile_trr.rs b/src/c_abi/xdrfile_trr.rs index a7eae5b..d5c87b7 100644 --- a/src/c_abi/xdrfile_trr.rs +++ b/src/c_abi/xdrfile_trr.rs @@ -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); } diff --git a/src/c_abi/xdrfile_xtc.rs b/src/c_abi/xdrfile_xtc.rs index ab8ba8b..a002604 100644 --- a/src/c_abi/xdrfile_xtc.rs +++ b/src/c_abi/xdrfile_xtc.rs @@ -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); } diff --git a/src/errors.rs b/src/errors.rs index 8d141ff..797f0b3 100644 --- a/src/errors.rs +++ b/src/errors.rs @@ -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 From for ErrorCode -where - T: TryInto, - >::Error: std::fmt::Debug, -{ - fn from(code: T) -> Self { - match code.try_into().expect("C API return code was out of range") { +impl From 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,