spicedb_rs/
lib.rs

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}