1mod ffi;
2
3use crate::ffi::{GopherGenerateUUID, GopherIncrement};
4use std::ffi::CStr;
5
6pub fn increment(n: u8) -> u8 {
7 unsafe { GopherIncrement(n) }
8}
9
10pub fn generate_uuid() -> &'static str {
11 unsafe {
12 let x = GopherGenerateUUID();
13 if x.is_null() {
14 "x.is_null"
15 } else {
16 let c_str = CStr::from_ptr(x);
17 match c_str.to_str() {
18 Ok(s) => { s }
19 Err(e) => {
20 println!("{}", e.valid_up_to());
21 "error"
22 }
23 }
24 }
25 }
26}
27
28#[cfg(test)]
29mod tests {
30 use super::*;
31
32 #[test]
33 fn it_works() {
34 let result = increment(29);
35 assert_eq!(result, 30);
36 }
37
38 #[test]
39 fn generates_uuid() {
40 let result = generate_uuid();
41 assert_eq!(result.len(), 36);
42 }
43}