use lief_ffi as ffi;
use crate::common::FromFFI;
use crate::dwarf::editor::Type;
use crate::dwarf::editor::types::EditorType;
pub struct Variable {
ptr: cxx::UniquePtr<ffi::DWARF_editor_Variable>,
}
impl FromFFI<ffi::DWARF_editor_Variable> for Variable {
fn from_ffi(ptr: cxx::UniquePtr<ffi::DWARF_editor_Variable>) -> Self {
Self { ptr }
}
}
impl Variable {
pub fn set_addr(&mut self, addr: u64) -> &mut Self {
self.ptr.pin_mut().set_addr(addr);
self
}
pub fn set_stack_offset(&mut self, addr: u64) -> &mut Self {
self.ptr.pin_mut().set_stack_offset(addr);
self
}
pub fn set_external(&mut self) -> &mut Self {
self.ptr.pin_mut().set_external();
self
}
pub fn set_type(&mut self, ty: &Type) -> &mut Self {
self.ptr.pin_mut().set_type(ty.get_base());
self
}
pub fn add_description(&mut self, description: &str) -> &mut Self {
cxx::let_cxx_string!(__cxx_s = description);
self.ptr.pin_mut().add_description(&__cxx_s);
self
}
}