summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2021-07-12 23:19:11 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2021-07-12 23:19:11 +0000
commit81d10e646e3783d49c54537dafd7f38a406c7919 (patch)
tree13e79adb7546494f5f3afb1daaebe53402709287
parente9d9b27a649b04eb9f3899c1c7ab81ada22adf43 (diff)
parent7f38cf97916ec0b12b4aced663462e56dd8fe0b3 (diff)
downloadnative-81d10e646e3783d49c54537dafd7f38a406c7919.tar.gz
Merge "libbinder_rs: Add enum_values function to AIDL enums"
-rw-r--r--libs/binder/rust/src/binder.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/binder/rust/src/binder.rs b/libs/binder/rust/src/binder.rs
index f79b1b7023..dd0c7b82e0 100644
--- a/libs/binder/rust/src/binder.rs
+++ b/libs/binder/rust/src/binder.rs
@@ -897,7 +897,7 @@ macro_rules! declare_binder_interface {
#[macro_export]
macro_rules! declare_binder_enum {
{
- $enum:ident : $backing:ty {
+ $enum:ident : [$backing:ty; $size:expr] {
$( $name:ident = $value:expr, )*
}
} => {
@@ -905,6 +905,11 @@ macro_rules! declare_binder_enum {
pub struct $enum(pub $backing);
impl $enum {
$( pub const $name: Self = Self($value); )*
+
+ #[inline(always)]
+ pub const fn enum_values() -> [Self; $size] {
+ [$(Self::$name),*]
+ }
}
impl $crate::parcel::Serialize for $enum {