Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 69f67e7e authored by Devin Moore's avatar Devin Moore
Browse files

Add bitwise operators to declare_binder_enum

Test: atest aidl_integration_test
Bug: 393455995

Change-Id: Ie8621848062185fd5c236272f8ee04b21b3f1d10
parent 52b4e753
Loading
Loading
Loading
Loading
+40 −0
Original line number Diff line number Diff line
@@ -1201,5 +1201,45 @@ macro_rules! declare_binder_enum {
                Ok(v.map(|v| v.into_iter().map(Self).collect()))
            }
        }

        impl std::ops::BitOr for $enum {
            type Output = Self;
            fn bitor(self, rhs: Self) -> Self {
                Self(self.0 | rhs.0)
            }
        }

        impl std::ops::BitOrAssign for $enum {
            fn bitor_assign(&mut self, rhs: Self) {
                self.0 = self.0 | rhs.0;
            }
        }

        impl std::ops::BitAnd for $enum {
            type Output = Self;
            fn bitand(self, rhs: Self) -> Self {
                Self(self.0 & rhs.0)
            }
        }

        impl std::ops::BitAndAssign for $enum {
            fn bitand_assign(&mut self, rhs: Self) {
                self.0 = self.0 & rhs.0;
            }
        }

        impl std::ops::BitXor for $enum {
            type Output = Self;
            fn bitxor(self, rhs: Self) -> Self {
                Self(self.0 ^ rhs.0)
            }
        }

        impl std::ops::BitXorAssign for $enum {
            fn bitxor_assign(&mut self, rhs: Self) {
                self.0 = self.0 ^ rhs.0;
            }
        }

    };
}