Struct binaryninja::types::Type
source · pub struct Type { /* private fields */ }
Implementations§
source§impl Type
impl Type
let bv = binaryninja::load("example.bin").unwrap();
let my_custom_type_1 = Type::named_int(5, false, "my_w");
let my_custom_type_2 = Type::int(5, false);
bv.define_user_type("int_1", &my_custom_type_1);
bv.define_user_type("int_2", &my_custom_type_2);
pub fn to_builder(&self) -> TypeBuilder
pub fn type_class(&self) -> TypeClass
pub fn width(&self) -> u64
pub fn alignment(&self) -> usize
pub fn is_signed(&self) -> Conf<bool>
pub fn is_const(&self) -> Conf<bool>
pub fn is_volatile(&self) -> Conf<bool>
pub fn is_floating_point(&self) -> bool
pub fn target(&self) -> Result<Conf<Ref<Type>>>
pub fn element_type(&self) -> Result<Conf<Ref<Type>>>
pub fn return_value(&self) -> Result<Conf<Ref<Type>>>
pub fn calling_convention( &self ) -> Result<Conf<Ref<CallingConvention<CoreArchitecture>>>>
pub fn parameters(&self) -> Result<Vec<FunctionParameter>>
pub fn has_variable_arguments(&self) -> Conf<bool>
pub fn can_return(&self) -> Conf<bool>
pub fn pure(&self) -> Conf<bool>
pub fn get_structure(&self) -> Result<Ref<Structure>>
pub fn get_enumeration(&self) -> Result<Ref<Enumeration>>
pub fn get_named_type_reference(&self) -> Result<Ref<NamedTypeReference>>
pub fn count(&self) -> u64
pub fn offset(&self) -> u64
pub fn stack_adjustment(&self) -> Conf<i64>
pub fn registered_name(&self) -> Result<Ref<NamedTypeReference>>
pub fn void() -> Ref<Self>
pub fn bool() -> Ref<Self>
pub fn char() -> Ref<Self>
pub fn wide_char(width: usize) -> Ref<Self>
pub fn int(width: usize, is_signed: bool) -> Ref<Self>
pub fn named_int<S: BnStrCompatible>( width: usize, is_signed: bool, alt_name: S ) -> Ref<Self>
pub fn float(width: usize) -> Ref<Self>
pub fn named_float<S: BnStrCompatible>(width: usize, alt_name: S) -> Ref<Self>
pub fn array<'a, T: Into<Conf<&'a Type>>>(t: T, count: u64) -> Ref<Self>
sourcepub fn enumeration<T: Into<Conf<bool>>>(
enumeration: &Enumeration,
width: usize,
is_signed: T
) -> Ref<Self>
pub fn enumeration<T: Into<Conf<bool>>>( enumeration: &Enumeration, width: usize, is_signed: T ) -> Ref<Self>
The C/C++ APIs require an associated architecture, but in the core we only query the default_int_size if the given width is 0
For simplicity’s sake, that convention isn’t followed and you can query the default_int_size from an arch, if you have it, if you need to
pub fn structure(structure: &Structure) -> Ref<Self>
pub fn named_type(type_reference: &NamedTypeReference) -> Ref<Self>
pub fn named_type_from_type<S: BnStrCompatible>(name: S, t: &Type) -> Ref<Self>
pub fn function<'a, T: Into<Conf<&'a Type>>>( return_type: T, parameters: &[FunctionParameter], variable_arguments: bool ) -> Ref<Self>
pub fn function_with_options<'a, A: Architecture, T: Into<Conf<&'a Type>>, C: Into<Conf<&'a CallingConvention<A>>>>( return_type: T, parameters: &[FunctionParameter], variable_arguments: bool, calling_convention: C, stack_adjust: Conf<i64> ) -> Ref<Self>
pub fn pointer<'a, A: Architecture, T: Into<Conf<&'a Type>>>( arch: &A, t: T ) -> Ref<Self>
pub fn const_pointer<'a, A: Architecture, T: Into<Conf<&'a Type>>>( arch: &A, t: T ) -> Ref<Self>
pub fn pointer_of_width<'a, T: Into<Conf<&'a Type>>>( t: T, size: usize, is_const: bool, is_volatile: bool, ref_type: Option<ReferenceType> ) -> Ref<Self>
pub fn pointer_with_options<'a, A: Architecture, T: Into<Conf<&'a Type>>>( arch: &A, t: T, is_const: bool, is_volatile: bool, ref_type: Option<ReferenceType> ) -> Ref<Self>
pub fn generate_auto_demangled_type_id<S: BnStrCompatible>(name: S) -> BnString
Trait Implementations§
source§impl PartialEq for Type
impl PartialEq for Type
source§impl ToOwned for Type
impl ToOwned for Type
impl Eq for Type
impl Send for Type
impl Sync for Type
Auto Trait Implementations§
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more