pub struct SchemaRepository { /* private fields */ }Expand description
Thread-safe in-memory schema repository
Stores schema definitions with concurrent read/write access using DashMap.
Suitable for production use with high-concurrency workloads.
§Design Philosophy
- Lock-free concurrent access using sharded hash maps
- Zero-copy schema retrieval using Arc
- Type-safe schema identifiers
- Simple CRUD operations
§Examples
let repo = SchemaRepository::new();
let schema_id = SchemaId::new("user-v1");
let schema = Schema::integer(Some(1), Some(100));
repo.store(schema_id.clone(), schema).unwrap();
let retrieved = repo.get(&schema_id).unwrap();Implementations§
Source§impl SchemaRepository
impl SchemaRepository
Sourcepub fn store_or_update(
&self,
id: SchemaId,
schema: Schema,
) -> ApplicationResult<Option<Arc<Schema>>>
pub fn store_or_update( &self, id: SchemaId, schema: Schema, ) -> ApplicationResult<Option<Arc<Schema>>>
Trait Implementations§
Source§impl Clone for SchemaRepository
impl Clone for SchemaRepository
Auto Trait Implementations§
impl Freeze for SchemaRepository
impl !RefUnwindSafe for SchemaRepository
impl Send for SchemaRepository
impl Sync for SchemaRepository
impl Unpin for SchemaRepository
impl !UnwindSafe for SchemaRepository
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more