summaryrefslogtreecommitdiff
path: root/vendor/bitflags/src/tests/difference.rs
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-07-15 16:37:08 -0600
committermo khan <mo@mokhan.ca>2025-07-17 16:30:22 -0600
commit45df4d0d9b577fecee798d672695fe24ff57fb1b (patch)
tree1b99bf645035b58e0d6db08c7a83521f41f7a75b /vendor/bitflags/src/tests/difference.rs
parentf94f79608393d4ab127db63cc41668445ef6b243 (diff)
feat: migrate from Cedar to SpiceDB authorization system
This is a major architectural change that replaces the Cedar policy-based authorization system with SpiceDB's relation-based authorization. Key changes: - Migrate from Rust to Go implementation - Replace Cedar policies with SpiceDB schema and relationships - Switch from envoy `ext_authz` with Cedar to SpiceDB permission checks - Update build system and dependencies for Go ecosystem - Maintain Envoy integration for external authorization This change enables more flexible permission modeling through SpiceDB's Google Zanzibar inspired relation-based system, supporting complex hierarchical permissions that were difficult to express in Cedar. Breaking change: Existing Cedar policies and Rust-based configuration will no longer work and need to be migrated to SpiceDB schema.
Diffstat (limited to 'vendor/bitflags/src/tests/difference.rs')
-rw-r--r--vendor/bitflags/src/tests/difference.rs92
1 files changed, 0 insertions, 92 deletions
diff --git a/vendor/bitflags/src/tests/difference.rs b/vendor/bitflags/src/tests/difference.rs
deleted file mode 100644
index 6ce9c0bf..00000000
--- a/vendor/bitflags/src/tests/difference.rs
+++ /dev/null
@@ -1,92 +0,0 @@
-use super::*;
-
-use crate::Flags;
-
-#[test]
-fn cases() {
- case(
- TestFlags::A | TestFlags::B,
- &[
- (TestFlags::A, 1 << 1),
- (TestFlags::B, 1),
- (TestFlags::from_bits_retain(1 << 3), 1 | 1 << 1),
- ],
- TestFlags::difference,
- );
-
- case(
- TestFlags::from_bits_retain(1 | 1 << 3),
- &[
- (TestFlags::A, 1 << 3),
- (TestFlags::from_bits_retain(1 << 3), 1),
- ],
- TestFlags::difference,
- );
-
- case(
- TestExternal::from_bits_retain(!0),
- &[(TestExternal::A, 0b1111_1110)],
- TestExternal::difference,
- );
-
- assert_eq!(
- 0b1111_1110,
- (TestExternal::from_bits_retain(!0) & !TestExternal::A).bits()
- );
-
- assert_eq!(
- 0b1111_1110,
- (TestFlags::from_bits_retain(!0).difference(TestFlags::A)).bits()
- );
-
- // The `!` operator unsets bits that don't correspond to known flags
- assert_eq!(
- 1 << 1 | 1 << 2,
- (TestFlags::from_bits_retain(!0) & !TestFlags::A).bits()
- );
-}
-
-#[track_caller]
-fn case<T: Flags + std::fmt::Debug + std::ops::Sub<Output = T> + std::ops::SubAssign + Copy>(
- value: T,
- inputs: &[(T, T::Bits)],
- mut inherent: impl FnMut(T, T) -> T,
-) where
- T::Bits: std::fmt::Debug + PartialEq + Copy,
-{
- for (input, expected) in inputs {
- assert_eq!(
- *expected,
- inherent(value, *input).bits(),
- "{:?}.difference({:?})",
- value,
- input
- );
- assert_eq!(
- *expected,
- Flags::difference(value, *input).bits(),
- "Flags::difference({:?}, {:?})",
- value,
- input
- );
- assert_eq!(
- *expected,
- (value - *input).bits(),
- "{:?} - {:?}",
- value,
- input
- );
- assert_eq!(
- *expected,
- {
- let mut value = value;
- value -= *input;
- value
- }
- .bits(),
- "{:?} -= {:?}",
- value,
- input,
- );
- }
-}