summaryrefslogtreecommitdiff
path: root/vendor/writeable/examples/writeable_message.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/writeable/examples/writeable_message.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/writeable/examples/writeable_message.rs')
-rw-r--r--vendor/writeable/examples/writeable_message.rs61
1 files changed, 0 insertions, 61 deletions
diff --git a/vendor/writeable/examples/writeable_message.rs b/vendor/writeable/examples/writeable_message.rs
deleted file mode 100644
index ca7c773d..00000000
--- a/vendor/writeable/examples/writeable_message.rs
+++ /dev/null
@@ -1,61 +0,0 @@
-// This file is part of ICU4X. For terms of use, please see the file
-// called LICENSE at the top level of the ICU4X source tree
-// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
-
-// This example illustrates a very simple type implementing Writeable.
-
-#![no_main] // https://github.com/unicode-org/icu4x/issues/395
-icu_benchmark_macros::instrument!();
-
-use std::fmt;
-use writeable::*;
-
-struct WriteableMessage<W: Writeable>(W);
-
-const GREETING: Part = Part {
- category: "meaning",
- value: "greeting",
-};
-
-const EMOJI: Part = Part {
- category: "meaning",
- value: "emoji",
-};
-
-impl<V: Writeable> Writeable for WriteableMessage<V> {
- fn write_to_parts<W: PartsWrite + ?Sized>(&self, sink: &mut W) -> fmt::Result {
- use fmt::Write;
- sink.with_part(GREETING, |g| {
- g.write_str("Hello")?;
- g.write_str(" ")?;
- self.0.write_to(g)
- })?;
- sink.write_char(' ')?;
- sink.with_part(EMOJI, |e| e.write_char('😅'))
- }
-
- fn writeable_length_hint(&self) -> LengthHint {
- LengthHint::exact(11) + self.0.writeable_length_hint()
- }
-}
-
-impl<V: Writeable> fmt::Display for WriteableMessage<V> {
- #[inline]
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- self.write_to(f)
- }
-}
-
-fn main() {
- let (string, parts) =
- writeable::_internal::writeable_to_parts_for_test(&WriteableMessage("world"));
-
- assert_eq!(string, "Hello world 😅");
-
- // Print the greeting only
- let (start, end, _) = parts
- .into_iter()
- .find(|(_, _, part)| part == &GREETING)
- .unwrap();
- println!("{}", &string[start..end]);
-}