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}