pub struct VersionedSchemaRegistry { /* private fields */ }Expand description
Enhanced schema registry with version history.
Provides storage and lookup for schema metadata with support for:
- Version history tracking per schema family
- Hash-based lookup for WAL replay
- Optional persistence to JSON
- Compatibility checking between versions
Implementations§
Source§impl VersionedSchemaRegistry
impl VersionedSchemaRegistry
Sourcepub fn with_persistence(path: impl AsRef<Path>) -> Self
pub fn with_persistence(path: impl AsRef<Path>) -> Self
Create a registry with persistence.
Sourcepub fn register_versioned(&self, info: TypeInfo, version: SchemaVersion)
pub fn register_versioned(&self, info: TypeInfo, version: SchemaVersion)
Register a schema with explicit version.
Sourcepub fn get_by_hash(&self, hash: u64) -> Option<TypeInfo>
pub fn get_by_hash(&self, hash: u64) -> Option<TypeInfo>
Get a schema by hash.
Sourcepub fn get_versions(&self, short_name: &str) -> Vec<SchemaVersion>
pub fn get_versions(&self, short_name: &str) -> Vec<SchemaVersion>
Get all versions of a schema family.
Sourcepub fn get_latest(&self, short_name: &str) -> Option<TypeInfo>
pub fn get_latest(&self, short_name: &str) -> Option<TypeInfo>
Get the latest version of a schema.
Sourcepub fn get_version(
&self,
short_name: &str,
version: SchemaVersion,
) -> Option<TypeInfo>
pub fn get_version( &self, short_name: &str, version: SchemaVersion, ) -> Option<TypeInfo>
Get a specific version of a schema.
Sourcepub fn contains_family(&self, short_name: &str) -> bool
pub fn contains_family(&self, short_name: &str) -> bool
Check if a schema family exists.
Sourcepub fn check_compatibility(&self, from: &str, to: &str) -> bool
pub fn check_compatibility(&self, from: &str, to: &str) -> bool
Check compatibility between two schemas.
Trait Implementations§
Source§impl Default for VersionedSchemaRegistry
impl Default for VersionedSchemaRegistry
Source§fn default() -> VersionedSchemaRegistry
fn default() -> VersionedSchemaRegistry
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !Freeze for VersionedSchemaRegistry
impl !RefUnwindSafe for VersionedSchemaRegistry
impl Send for VersionedSchemaRegistry
impl Sync for VersionedSchemaRegistry
impl Unpin for VersionedSchemaRegistry
impl UnwindSafe for VersionedSchemaRegistry
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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> 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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.