From f56ab9e66f4226ce9541db31416f2bcb942f5c12 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Mon, 27 May 2019 10:29:21 +0300 Subject: Move all bchlib files into bchlib/ --- src/lib.rs | 76 -------------------------------------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 src/lib.rs (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs deleted file mode 100644 index 1575efb..0000000 --- a/src/lib.rs +++ /dev/null @@ -1,76 +0,0 @@ -extern crate bchlib_sys as ffi; - -use std::ptr; - -#[derive(Debug)] -pub struct BCH(ffi::bch_control); - -impl BCH { - pub fn init(m: i32, t: i32) -> Result { - BCH::init_with_poly(m, t, 0) - } - - pub fn init_with_poly(m: i32, t: i32, poly: u32) -> Result { - unsafe { - let bch = ffi::init_bch(m, t, poly); - if bch == ptr::null_mut() { - Err("Invalid BCH params") - } - else { - Ok(BCH(*bch)) - } - } - } - - pub fn decode(&mut self, msg: &[u8], ecc: &[u8], errloc: &mut[u32]) -> i32 { - let err = unsafe { - ffi::decodebits_bch(&mut self.0, msg.as_ptr(), ecc.as_ptr(), errloc.as_mut_ptr()) - }; - err - } -} - - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_decode() { - let mut bch = BCH::init(5, 2).unwrap(); - let msg: [u8; 21] = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; - let ecc: [u8; 10] = [1, 1, 1, 0, 1, 1, 0, 1, 0, 0]; - let mut errloc: [u32; 2] = [0, 0]; - bch.decode(&msg, &ecc, &mut errloc); - assert_eq!(errloc[0], 0); - assert_eq!(errloc[1], 0); - } - - #[test] - fn test_decode_err() { - let mut bch = BCH::init(5, 2).unwrap(); - let msg: [u8; 21] = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; - let ecc: [u8; 10] = [1, 1, 1, 0, 1, 1, 0, 1, 0, 0]; - let mut errloc: [u32; 2] = [0, 0]; - bch.decode(&msg, &ecc, &mut errloc); - assert_eq!(errloc[0], 9); - assert_eq!(errloc[1], 0); - } - - #[test] - fn test_sync_codeword() { - let mut bch = BCH::init(5, 2).unwrap(); - let msg: [u8; 21] = [0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0]; - let ecc: [u8; 10] = [1, 0, 1, 1, 1, 0, 1, 1, 0, 0]; - let mut errloc: [u32; 2] = [0, 0]; - bch.decode(&msg, &ecc, &mut errloc); - assert_eq!(errloc[0], 0); - assert_eq!(errloc[1], 0); - } - - #[test] - fn test_init_fail() { - let bch = BCH::init_with_poly(5, 2, 1897); - assert_eq!(bch.is_err(), true); - } -} -- cgit v1.3.1