summaryrefslogtreecommitdiff
path: root/vendor/hyper/src/rt/timer.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/hyper/src/rt/timer.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/hyper/src/rt/timer.rs')
-rw-r--r--vendor/hyper/src/rt/timer.rs127
1 files changed, 0 insertions, 127 deletions
diff --git a/vendor/hyper/src/rt/timer.rs b/vendor/hyper/src/rt/timer.rs
deleted file mode 100644
index c6a6f1db..00000000
--- a/vendor/hyper/src/rt/timer.rs
+++ /dev/null
@@ -1,127 +0,0 @@
-//! Provides a timer trait with timer-like functions
-//!
-//! Example using tokio timer:
-//! ```rust
-//! use std::{
-//! future::Future,
-//! pin::Pin,
-//! task::{Context, Poll},
-//! time::{Duration, Instant},
-//! };
-//!
-//! use pin_project_lite::pin_project;
-//! use hyper::rt::{Timer, Sleep};
-//!
-//! #[derive(Clone, Debug)]
-//! pub struct TokioTimer;
-//!
-//! impl Timer for TokioTimer {
-//! fn sleep(&self, duration: Duration) -> Pin<Box<dyn Sleep>> {
-//! Box::pin(TokioSleep {
-//! inner: tokio::time::sleep(duration),
-//! })
-//! }
-//!
-//! fn sleep_until(&self, deadline: Instant) -> Pin<Box<dyn Sleep>> {
-//! Box::pin(TokioSleep {
-//! inner: tokio::time::sleep_until(deadline.into()),
-//! })
-//! }
-//!
-//! fn reset(&self, sleep: &mut Pin<Box<dyn Sleep>>, new_deadline: Instant) {
-//! if let Some(sleep) = sleep.as_mut().downcast_mut_pin::<TokioSleep>() {
-//! sleep.reset(new_deadline.into())
-//! }
-//! }
-//! }
-//!
-//! pin_project! {
-//! pub(crate) struct TokioSleep {
-//! #[pin]
-//! pub(crate) inner: tokio::time::Sleep,
-//! }
-//! }
-//!
-//! impl Future for TokioSleep {
-//! type Output = ();
-//!
-//! fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
-//! self.project().inner.poll(cx)
-//! }
-//! }
-//!
-//! impl Sleep for TokioSleep {}
-//!
-//! impl TokioSleep {
-//! pub fn reset(self: Pin<&mut Self>, deadline: Instant) {
-//! self.project().inner.as_mut().reset(deadline.into());
-//! }
-//! }
-//! ```
-
-use std::{
- any::TypeId,
- future::Future,
- pin::Pin,
- time::{Duration, Instant},
-};
-
-/// A timer which provides timer-like functions.
-pub trait Timer {
- /// Return a future that resolves in `duration` time.
- fn sleep(&self, duration: Duration) -> Pin<Box<dyn Sleep>>;
-
- /// Return a future that resolves at `deadline`.
- fn sleep_until(&self, deadline: Instant) -> Pin<Box<dyn Sleep>>;
-
- /// Reset a future to resolve at `new_deadline` instead.
- fn reset(&self, sleep: &mut Pin<Box<dyn Sleep>>, new_deadline: Instant) {
- *sleep = self.sleep_until(new_deadline);
- }
-}
-
-/// A future returned by a `Timer`.
-pub trait Sleep: Send + Sync + Future<Output = ()> {
- #[doc(hidden)]
- /// This method is private and can not be implemented by downstream crate
- fn __type_id(&self, _: private::Sealed) -> TypeId
- where
- Self: 'static,
- {
- TypeId::of::<Self>()
- }
-}
-
-impl dyn Sleep {
- //! This is a re-implementation of downcast methods from std::any::Any
-
- /// Check whether the type is the same as `T`
- pub fn is<T>(&self) -> bool
- where
- T: Sleep + 'static,
- {
- self.__type_id(private::Sealed {}) == TypeId::of::<T>()
- }
-
- /// Downcast a pinned &mut Sleep object to its original type
- pub fn downcast_mut_pin<T>(self: Pin<&mut Self>) -> Option<Pin<&mut T>>
- where
- T: Sleep + 'static,
- {
- if self.is::<T>() {
- unsafe {
- let inner = Pin::into_inner_unchecked(self);
- Some(Pin::new_unchecked(
- &mut *(&mut *inner as *mut dyn Sleep as *mut T),
- ))
- }
- } else {
- None
- }
- }
-}
-
-mod private {
- #![allow(missing_debug_implementations)]
- pub struct Sealed {}
-}