ListVersion

Struct ListVersion 

Source
pub struct ListVersion {
    pub major: u16,
    pub minor: u16,
    pub patch: u16,
}
Expand description

A struct describing the version of a module in this crate.

List-containing modules in this crate have their own version, separate from the full crate version. A module on a 0.x.y version is subject to ANY change during a crate minor release, including removal of it entirely.

This system also exists so that you can use a breaking crate-level update, while knowing that you will not have to change any of your code, because the update only broke a specific list that you are not using.

Essentially, when using this crate, you should always use an exact version specifier =x.y.z, and only update when you have checked the new ListVersion of the list(s) you are using. The ListVersion of all of the lists is next to the module name in the README, and in module::VERSION.

See the SemVer specification for details on the meaning of “major”, “minor”, and “patch”.

Fields§

§major: u16

The major version of a module.

When this is 0, all items in the module are considered “experimental”, and may be removed at any crate minor release. Otherwise, the biggest change to any module will cause that level of crate update.

§minor: u16

The minor version of a module.

§patch: u16

The patch version of a module.

Implementations§

Source§

impl ListVersion

Source

pub fn experimental(self) -> bool

Returns whether this list is considered “experimental” or not.

An experimental list can have breaking changes in non-breaking crate releases.

Source

pub fn compatible(self, other: ListVersion) -> bool

Returns whether self could be used when other was the specified version.

§Examples
use linked_lists::ListVersion;
 
let version = ListVersion {
    major: 1,
    minor: 2,
    patch: 3,
};
 
let expected = linked_lists::ListVersion {
    major: 1,
    minor: 0,
    patch: 0
};
 
assert!(version.compatible(expected));

Trait Implementations§

Source§

impl Clone for ListVersion

Source§

fn clone(&self) -> ListVersion

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ListVersion

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for ListVersion

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Copy for ListVersion

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.