35 lines
651 B
Rust
35 lines
651 B
Rust
mod builder;
|
|
mod file;
|
|
|
|
use crate::Entry;
|
|
pub use builder::Builder;
|
|
use libarchive3_sys::ffi;
|
|
|
|
pub struct WriteEntry {
|
|
entry: *mut ffi::Struct_archive_entry,
|
|
}
|
|
|
|
impl WriteEntry {
|
|
pub fn new() -> Self {
|
|
let entry = unsafe { ffi::archive_entry_new() };
|
|
|
|
Self { entry }
|
|
}
|
|
}
|
|
|
|
impl Entry for WriteEntry {
|
|
unsafe fn entry(&self) -> *const ffi::Struct_archive_entry {
|
|
self.entry as *const _
|
|
}
|
|
|
|
unsafe fn entry_mut(&mut self) -> *mut ffi::Struct_archive_entry {
|
|
self.entry
|
|
}
|
|
}
|
|
|
|
impl Drop for WriteEntry {
|
|
fn drop(&mut self) {
|
|
unsafe { ffi::archive_entry_free(self.entry_mut()) }
|
|
}
|
|
}
|