[avb] Add shortcut Result wrapping AvbIOError
The new Result will be reused in other modules like
`descriptor` added soon in aosp/2392892.
Bug: 256148034
Test: m pvmfw_img && atest libpvmfw_avb.integration_test
Change-Id: Iabd85927958da730ea411bf6ae5a280b677bc2d2
diff --git a/pvmfw/avb/src/utils.rs b/pvmfw/avb/src/utils.rs
index bb27497..1b35c22 100644
--- a/pvmfw/avb/src/utils.rs
+++ b/pvmfw/avb/src/utils.rs
@@ -16,8 +16,11 @@
use crate::error::AvbIOError;
use core::ptr::NonNull;
+use core::result;
-pub(crate) fn write<T>(ptr: *mut T, value: T) -> Result<(), AvbIOError> {
+pub(crate) type Result<T> = result::Result<T, AvbIOError>;
+
+pub(crate) fn write<T>(ptr: *mut T, value: T) -> Result<()> {
let ptr = to_nonnull(ptr)?;
// SAFETY: It is safe as the raw pointer `ptr` is a nonnull pointer.
unsafe {
@@ -26,17 +29,17 @@
Ok(())
}
-pub(crate) fn as_ref<'a, T>(ptr: *mut T) -> Result<&'a T, AvbIOError> {
+pub(crate) fn as_ref<'a, T>(ptr: *mut T) -> Result<&'a T> {
let ptr = to_nonnull(ptr)?;
// SAFETY: It is safe as the raw pointer `ptr` is a nonnull pointer.
unsafe { Ok(ptr.as_ref()) }
}
-pub(crate) fn to_nonnull<T>(ptr: *mut T) -> Result<NonNull<T>, AvbIOError> {
+pub(crate) fn to_nonnull<T>(ptr: *mut T) -> Result<NonNull<T>> {
NonNull::new(ptr).ok_or(AvbIOError::NoSuchValue)
}
-pub(crate) fn is_not_null<T>(ptr: *const T) -> Result<(), AvbIOError> {
+pub(crate) fn is_not_null<T>(ptr: *const T) -> Result<()> {
if ptr.is_null() {
Err(AvbIOError::NoSuchValue)
} else {
@@ -44,10 +47,10 @@
}
}
-pub(crate) fn to_usize<T: TryInto<usize>>(num: T) -> Result<usize, AvbIOError> {
+pub(crate) fn to_usize<T: TryInto<usize>>(num: T) -> Result<usize> {
num.try_into().map_err(|_| AvbIOError::InvalidValueSize)
}
-pub(crate) fn usize_checked_add(x: usize, y: usize) -> Result<usize, AvbIOError> {
+pub(crate) fn usize_checked_add(x: usize, y: usize) -> Result<usize> {
x.checked_add(y).ok_or(AvbIOError::InvalidValueSize)
}
diff --git a/pvmfw/avb/tests/utils.rs b/pvmfw/avb/tests/utils.rs
index aa40bb8..5e8629a 100644
--- a/pvmfw/avb/tests/utils.rs
+++ b/pvmfw/avb/tests/utils.rs
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-//! Utility methods used by API tests.
+//! Utility functions used by API tests.
use anyhow::Result;
use avb_bindgen::{