summaryrefslogtreecommitdiff
path: root/vendor/enum-ordinalize/src/traits.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/enum-ordinalize/src/traits.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/enum-ordinalize/src/traits.rs')
-rw-r--r--vendor/enum-ordinalize/src/traits.rs68
1 files changed, 0 insertions, 68 deletions
diff --git a/vendor/enum-ordinalize/src/traits.rs b/vendor/enum-ordinalize/src/traits.rs
deleted file mode 100644
index f63fa3ff..00000000
--- a/vendor/enum-ordinalize/src/traits.rs
+++ /dev/null
@@ -1,68 +0,0 @@
-/// This trait provides an enum with the ability to not only obtain the ordinal values of its variants but also allows for the construction of enums from an ordinal value.
-///
-/// ```rust
-/// use enum_ordinalize::Ordinalize;
-///
-/// #[repr(u8)]
-/// enum E {
-/// A,
-/// B,
-/// }
-///
-/// impl Ordinalize for E {
-/// type VariantType = u8;
-///
-/// const VALUES: &'static [Self::VariantType] = &[0, 1];
-/// const VARIANTS: &'static [Self] = &[E::A, E::B];
-/// const VARIANT_COUNT: usize = 2;
-///
-/// #[inline]
-/// unsafe fn from_ordinal_unsafe(number: Self::VariantType) -> Self {
-/// ::core::mem::transmute(number)
-/// }
-///
-/// #[inline]
-/// fn from_ordinal(number: Self::VariantType) -> Option<Self> {
-/// match number {
-/// 0 => Some(Self::A),
-/// 1 => Some(Self::B),
-/// _ => None,
-/// }
-/// }
-///
-/// #[inline]
-/// fn ordinal(&self) -> Self::VariantType {
-/// match self {
-/// Self::A => 0,
-/// Self::B => 1,
-/// }
-/// }
-/// }
-/// ```
-pub trait Ordinalize: Sized + 'static {
- /// The type of the values of the variants.
- type VariantType;
-
- /// The count of variants.
- const VARIANT_COUNT: usize;
-
- /// List of this enum's variants.
- const VARIANTS: &'static [Self];
-
- /// List of values for all variants of this enum.
- const VALUES: &'static [Self::VariantType];
-
- /// Obtain a variant based on an integer number.
- ///
- /// # Safety
- /// You have to ensure that the input integer number can correspond to a variant on your own.
- unsafe fn from_ordinal_unsafe(number: Self::VariantType) -> Self;
-
- /// Obtain a variant based on an integer number.
- fn from_ordinal(number: Self::VariantType) -> Option<Self>
- where
- Self: Sized;
-
- /// Retrieve the integer number of this variant.
- fn ordinal(&self) -> Self::VariantType;
-}