Function fz_string_is_null

Source
pub unsafe fn fz_string_is_null(fzstr: *const fz_string_t) -> bool
Expand description

Determine whether the given fz_string_t is a Null variant.

bool fz_string_is_null(fz_string_t *);
Examples found in repository?
examples/kv.rs (line 347)
321fn main() {
322    // kvstore_t *store = kvstore_new();
323    let store = unsafe { kvstore_new() };
324
325    /// Clone a Rust string into an kvstore_string_t
326    fn fzstr(s: &str) -> kvstore_string_t {
327        use std::ffi::CString;
328        let cstr = CString::new(s).unwrap();
329        unsafe { kvstore_string_clone(cstr.as_ptr()) }
330    }
331
332    /// Get a Rust &str containing the data in an kvstore_string_t
333    fn rstr(fzs: &mut kvstore_string_t) -> &str {
334        use std::ffi::CStr;
335        let content =
336            unsafe { CStr::from_ptr(kvstore_string_content(fzs as *mut kvstore_string_t)) };
337        content.to_str().unwrap()
338    }
339
340    // kvstore_string_t key = kvstore_string_clone("a-key");
341    let mut key = fzstr("a-key");
342
343    // kvstore_string_t val = kvstore_get(store, key)
344    let mut val = unsafe { kvstore_get(store, &mut key as *mut kvstore_string_t) };
345
346    // assert(kvstore_string_is_null(val));
347    assert!(unsafe { kvstore_string_is_null(&val as *const kvstore_string_t) });
348
349    // kvstore_string_free(val);
350    unsafe { kvstore_string_free(&mut val as *mut kvstore_string_t) };
351
352    // val = kvstore_string_clone("a-val");
353    let mut val = fzstr("a-val");
354
355    // assert(kvstore_set(store, key, val));
356    assert!(unsafe {
357        kvstore_set(
358            store,
359            &mut key as *mut kvstore_string_t,
360            &mut val as *mut kvstore_string_t,
361        )
362    });
363
364    // key = kvstore_string_clone("a-key");
365    let mut key = fzstr("a-key");
366
367    // val = kvstore_get(store, key)
368    let mut val = unsafe { kvstore_get(store, &mut key as *mut kvstore_string_t) };
369
370    // assert(0 == strcmp(kvstore_string_content(val), "a-val"));
371    assert_eq!(rstr(&mut val), "a-val");
372
373    // kvstore_string_free(val);
374    unsafe { kvstore_string_free(&mut val as *mut kvstore_string_t) };
375
376    // assert(kvstore_del(store, key));
377    assert!(unsafe { kvstore_del(store, &mut key as *mut kvstore_string_t,) });
378
379    // val = kvstore_get(store, key)
380    let mut val = unsafe { kvstore_get(store, &mut key as *mut kvstore_string_t) };
381
382    // assert(kvstore_string_is_null(val));
383    assert!(unsafe { kvstore_string_is_null(&val as *const kvstore_string_t) });
384
385    // kvstore_string_free(key);
386    unsafe { kvstore_string_free(&mut key as *mut kvstore_string_t) };
387
388    // kvstore_string_free(val);
389    unsafe { kvstore_string_free(&mut val as *mut kvstore_string_t) };
390
391    // kvstore_free(store);
392    unsafe { kvstore_free(store) };
393}