diff options
| author | mo khan <mo@mokhan.ca> | 2025-07-15 16:37:08 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-07-17 16:30:22 -0600 |
| commit | 45df4d0d9b577fecee798d672695fe24ff57fb1b (patch) | |
| tree | 1b99bf645035b58e0d6db08c7a83521f41f7a75b /vendor/time/src/serde/timestamp/microseconds.rs | |
| parent | f94f79608393d4ab127db63cc41668445ef6b243 (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/time/src/serde/timestamp/microseconds.rs')
| -rw-r--r-- | vendor/time/src/serde/timestamp/microseconds.rs | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/vendor/time/src/serde/timestamp/microseconds.rs b/vendor/time/src/serde/timestamp/microseconds.rs deleted file mode 100644 index 65c603ec..00000000 --- a/vendor/time/src/serde/timestamp/microseconds.rs +++ /dev/null @@ -1,63 +0,0 @@ -//! Treat an [`OffsetDateTime`] as a [Unix timestamp] with microseconds for -//! the purposes of serde. -//! -//! Use this module in combination with serde's [`#[with]`][with] attribute. -//! -//! When deserializing, the offset is assumed to be UTC. -//! -//! [Unix timestamp]: https://en.wikipedia.org/wiki/Unix_time -//! [with]: https://serde.rs/field-attrs.html#with - -use serde::{de, Deserialize, Deserializer, Serialize, Serializer}; - -use crate::OffsetDateTime; - -/// Serialize an `OffsetDateTime` as its Unix timestamp with microseconds -pub fn serialize<S: Serializer>( - datetime: &OffsetDateTime, - serializer: S, -) -> Result<S::Ok, S::Error> { - let timestamp = datetime.unix_timestamp_nanos() / 1_000; - timestamp.serialize(serializer) -} - -/// Deserialize an `OffsetDateTime` from its Unix timestamp with microseconds -pub fn deserialize<'a, D: Deserializer<'a>>(deserializer: D) -> Result<OffsetDateTime, D::Error> { - let value: i128 = <_>::deserialize(deserializer)?; - OffsetDateTime::from_unix_timestamp_nanos(value * 1_000) - .map_err(|err| de::Error::invalid_value(de::Unexpected::Signed(err.value), &err)) -} - -/// Treat an `Option<OffsetDateTime>` as a [Unix timestamp] with microseconds -/// for the purposes of serde. -/// -/// Use this module in combination with serde's [`#[with]`][with] attribute. -/// -/// When deserializing, the offset is assumed to be UTC. -/// -/// [Unix timestamp]: https://en.wikipedia.org/wiki/Unix_time -/// [with]: https://serde.rs/field-attrs.html#with -pub mod option { - #[allow(clippy::wildcard_imports)] - use super::*; - - /// Serialize an `Option<OffsetDateTime>` as its Unix timestamp with microseconds - pub fn serialize<S: Serializer>( - option: &Option<OffsetDateTime>, - serializer: S, - ) -> Result<S::Ok, S::Error> { - option - .map(|timestamp| timestamp.unix_timestamp_nanos() / 1_000) - .serialize(serializer) - } - - /// Deserialize an `Option<OffsetDateTime>` from its Unix timestamp with microseconds - pub fn deserialize<'a, D: Deserializer<'a>>( - deserializer: D, - ) -> Result<Option<OffsetDateTime>, D::Error> { - Option::deserialize(deserializer)? - .map(|value: i128| OffsetDateTime::from_unix_timestamp_nanos(value * 1_000)) - .transpose() - .map_err(|err| de::Error::invalid_value(de::Unexpected::Signed(err.value), &err)) - } -} |
