Struct binaryninja::types::Type
[−]pub struct Type { /* private fields */ }
Implementations
impl Type
impl Type
use binaryninja::types::Type;
let bv = unsafe { BinaryView::from_raw(view) };
let my_custom_type_1 = Self::named_int(5, false, "my_w");
let my_custom_type_2 = Self::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<BnString>>>
pub fn has_variable_arguments(&self) -> Conf<bool>
pub fn can_return(&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<NamedTypeReference>
pub fn count(&self) -> u64
pub fn offset(&self) -> u64
pub fn stack_adjustment(&self) -> Conf<i64>
pub fn registered_name(&self) -> Result<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>
pub 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, S: BnStrCompatible + Clone, T: Into<Conf<&'a Type>>>(
return_type: T,
parameters: &[FunctionParameter<S>],
variable_arguments: bool
) -> Ref<Self>
pub fn function_with_options<'a, A: Architecture, S: BnStrCompatible + Clone, T: Into<Conf<&'a Type>>, C: Into<Conf<&'a CallingConvention<A>>>>(
return_type: T,
parameters: &[FunctionParameter<S>],
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<'a, S: BnStrCompatible>(
name: S
) -> &'a BnStr
Trait Implementations
impl RefCountable for Type
impl RefCountable for Type
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
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more