pub struct SchemaVersion {
pub major: u16,
pub minor: u16,
}Expand description
Semantic version for schemas.
Uses major.minor versioning:
- Major version changes indicate breaking changes
- Minor version changes indicate backward-compatible changes
§Example
ⓘ
let v1 = SchemaVersion::new(1, 0);
let v1_1 = SchemaVersion::new(1, 1);
let v2 = SchemaVersion::new(2, 0);
assert!(v1.is_compatible_with(&v1_1)); // Same major = compatible
assert!(!v1.is_compatible_with(&v2)); // Different major = breakingFields§
§major: u16Major version (breaking changes).
minor: u16Minor version (backward-compatible changes).
Implementations§
Source§impl SchemaVersion
impl SchemaVersion
Sourcepub fn parse(s: &str) -> Option<Self>
pub fn parse(s: &str) -> Option<Self>
Parse a version string (e.g., “v1”, “v1.2”, “1.0”).
Supports formats:
- “v1” → (1, 0)
- “v1.2” → (1, 2)
- “1.0” → (1, 0)
- “1” → (1, 0)
Sourcepub fn is_compatible_with(&self, other: &Self) -> bool
pub fn is_compatible_with(&self, other: &Self) -> bool
Check if this version is compatible with another version.
Two versions are compatible if they have the same major version, and this version’s minor is >= the other’s minor.
Sourcepub fn is_successor_of(&self, other: &Self) -> bool
pub fn is_successor_of(&self, other: &Self) -> bool
Check if this version is a direct successor to another.
Sourcepub fn next_minor(&self) -> Self
pub fn next_minor(&self) -> Self
Get the next minor version.
Sourcepub fn next_major(&self) -> Self
pub fn next_major(&self) -> Self
Get the next major version.
Sourcepub fn to_version_string(&self) -> String
pub fn to_version_string(&self) -> String
Format as a version string (e.g., “v1.0”).
Sourcepub fn to_short_string(&self) -> String
pub fn to_short_string(&self) -> String
Format as a short version string (e.g., “v1” if minor is 0).
Trait Implementations§
Source§impl Clone for SchemaVersion
impl Clone for SchemaVersion
Source§fn clone(&self) -> SchemaVersion
fn clone(&self) -> SchemaVersion
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SchemaVersion
impl Debug for SchemaVersion
Source§impl Default for SchemaVersion
impl Default for SchemaVersion
Source§impl Display for SchemaVersion
impl Display for SchemaVersion
Source§impl FromStr for SchemaVersion
impl FromStr for SchemaVersion
Source§impl Hash for SchemaVersion
impl Hash for SchemaVersion
Source§impl Ord for SchemaVersion
impl Ord for SchemaVersion
Source§impl PartialEq for SchemaVersion
impl PartialEq for SchemaVersion
Source§impl PartialOrd for SchemaVersion
impl PartialOrd for SchemaVersion
impl Copy for SchemaVersion
impl Eq for SchemaVersion
impl StructuralPartialEq for SchemaVersion
Auto Trait Implementations§
impl Freeze for SchemaVersion
impl RefUnwindSafe for SchemaVersion
impl Send for SchemaVersion
impl Sync for SchemaVersion
impl Unpin for SchemaVersion
impl UnwindSafe for SchemaVersion
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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.