diff options
Diffstat (limited to 'rust/src/binary_view.rs')
| -rw-r--r-- | rust/src/binary_view.rs | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/rust/src/binary_view.rs b/rust/src/binary_view.rs index 8d49e55e..c455635a 100644 --- a/rust/src/binary_view.rs +++ b/rust/src/binary_view.rs @@ -51,8 +51,9 @@ use crate::string::*; use crate::symbol::{Symbol, SymbolType}; use crate::tags::{Tag, TagReference, TagType}; use crate::types::{ - NamedTypeReference, QualifiedName, QualifiedNameAndType, QualifiedNameTypeAndId, Type, - TypeArchive, TypeArchiveId, TypeContainer, TypeLibrary, + FunctionParameter, NamedTypeReference, QualifiedName, QualifiedNameAndType, + QualifiedNameTypeAndId, ReturnValue, Type, TypeArchive, TypeArchiveId, TypeContainer, + TypeLibrary, }; use crate::variable::DataVariable; use crate::workflow::Workflow; @@ -2964,6 +2965,36 @@ impl BinaryView { let path_str = unsafe { BnString::into_string(result) }; Some(PathBuf::from(path_str)) } + + pub fn deref_return_value_named_type_references( + &self, + return_value: &ReturnValue, + ) -> ReturnValue { + ReturnValue { + ty: Conf::new( + return_value.ty.contents.deref_named_type_reference(self), + return_value.ty.confidence, + ), + location: return_value.location.clone(), + } + } + + pub fn deref_parameter_named_type_references( + &self, + params: &[FunctionParameter], + ) -> Vec<FunctionParameter> { + params + .iter() + .map(|param| FunctionParameter { + ty: Conf::new( + param.ty.contents.deref_named_type_reference(self), + param.ty.confidence, + ), + name: param.name.clone(), + location: param.location.clone(), + }) + .collect() + } } impl BinaryViewBase for BinaryView { |
