pub struct Vsb<'a> {
pub raw: &'a mut varnish_sys::vsb,
}
impl<'a> Vsb<'a> {
#[allow(clippy::not_unsafe_ptr_arg_deref)]
pub fn new(raw: *mut varnish_sys::vsb) -> Self {
let raw = unsafe { raw.as_mut().unwrap() };
assert_eq!(raw.magic, varnish_sys::VSB_MAGIC);
Vsb {
raw,
}
}
pub fn cat<T: AsRef<[u8]>>(&mut self, src: &T) -> Result<(), ()> {
let buf = src.as_ref().as_ptr() as *const std::ffi::c_void;
let l = src.as_ref().len();
match unsafe {varnish_sys::VSB_bcat(self.raw, buf, l as i64) } {
0 => Ok(()),
_ => Err(()),
}
}
}