summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2019-03-19 19:45:17 +0200
committerYuval Adam <_@yuv.al>2019-03-19 19:45:17 +0200
commit602f5de85eec2b32de56cd38d441f2af2d926e27 (patch)
tree69086f655f93bd87e80d5e563bab3aa5e32f5008
parent4e5cac1c627648fd8ade50024490d541d0c6bf93 (diff)
Proper init() implementation
-rw-r--r--src/lib.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 0af03a6..a1e83fc 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,17 +1,21 @@
extern crate bchlib_sys as ffi;
-pub fn init(m:i32, t:i32, poly: u32) {
- unsafe {
- let bch = ffi::init_bch(m, t, poly);
+struct BCH(ffi::bch_control);
+
+impl BCH {
+ fn init(m: i32, t: i32, poly: u32) -> BCH {
+ let bch = unsafe { *ffi::init_bch(m, t, poly) };
+ BCH(bch)
}
}
+
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_works() {
- init();
+ let bch = BCH::init(5, 2, 0);
}
}