pub enum VersionIncrement {
    Major,
    Minor,
    Patch,
    Prerelease,
}

Variants§

§

Major

§

Minor

§

Patch

§

Prerelease

Implementations§

source§

impl VersionIncrement

source

pub fn from_commits<I>(current_version: &Version, commits: I) -> Option<Self>
where I: IntoIterator, I::Item: AsRef<str>,

Analyze commits and determine which part of version to increment based on conventional commits and Semantic versioning.

  • If no commits are present, Option::None is returned, because the version should not be incremented.
  • If some commits are present and semver::Prerelease is not empty, the version increment is VersionIncrement::Prerelease.
  • If some commits are present, but none of them match conventional commits specification, the version increment is VersionIncrement::Patch.
  • If some commits match conventional commits, then the next version is calculated by using these rules.
source

pub fn breaking(current_version: &Version) -> Self

Increments the version to take into account breaking changes.

use next_version::VersionIncrement;
use semver::Version;

let increment = VersionIncrement::breaking(&Version::new(0, 3, 3));
assert_eq!(increment, VersionIncrement::Minor);

let increment = VersionIncrement::breaking(&Version::new(1, 3, 3));
assert_eq!(increment, VersionIncrement::Major);

let increment = VersionIncrement::breaking(&Version::parse("1.3.3-alpha.1").unwrap());
assert_eq!(increment, VersionIncrement::Prerelease);
source§

impl VersionIncrement

source

pub fn bump(&self, version: &Version) -> Version

Trait Implementations§

source§

impl Debug for VersionIncrement

source§

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

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

impl PartialEq for VersionIncrement

source§

fn eq(&self, other: &VersionIncrement) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for VersionIncrement

source§

impl StructuralEq for VersionIncrement

source§

impl StructuralPartialEq for VersionIncrement

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> 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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.