1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
use std::ptr; use mupdf_sys::*; use crate::context; #[derive(Debug)] pub struct Buffer { inner: *mut fz_buffer, } impl Buffer { pub fn new() -> Self { Self::with_capacity(0) } pub fn with_capacity(cap: usize) -> Self { let inner = unsafe { fz_new_buffer(context(), cap) }; Self { inner } } pub fn len(&self) -> usize { unsafe { fz_buffer_storage(context(), self.inner, ptr::null_mut()) } } } impl Drop for Buffer { fn drop(&mut self) { if !self.inner.is_null() { unsafe { fz_drop_buffer(context(), self.inner); } } } } #[cfg(test)] mod test { use super::Buffer; #[test] fn test_buffer_len() { let buf = Buffer::new(); assert_eq!(buf.len(), 0); } }