pub enum ResolveVersion {
V1,
V2,
V3,
V4,
}
Expand description
A version to indicate how a Cargo.lock
should be serialized.
When creating a new lockfile, the version with #[default]
is used.
If an old version of lockfile already exists, it will stay as-is.
It’s important that if a new version is added that this is not updated until at least the support for the version is in the stable release of Rust.
This resolve version will be used for all new lock files, for example
those generated by cargo update
(update everything) or building after
a cargo new
(where no lock file previously existed). This is also used
for updated lock files such as when a dependency is added or when a
version requirement changes. In this situation Cargo’s updating the lock
file anyway so it takes the opportunity to bump the lock file version
forward.
It’s theorized that we can add more here over time to track larger changes
to the Cargo.lock
format, but we’ve yet to see how that strategy pans out.
Variants§
V1
Historical baseline for when this abstraction was added.
V2
A more compact format, more amenable to avoiding source-control merge
conflicts. The dependencies
arrays are compressed and checksums are
listed inline. Introduced in 2019 in version 1.38. New lockfiles use
V2 by default from 1.41 to 1.52.
V3
A format that explicitly lists a version
at the top of the file as
well as changing how git dependencies are encoded. Dependencies with
branch = "master"
are no longer encoded the same way as those without
branch specifiers. Introduced in 2020 in version 1.47. New lockfiles use
V3 by default staring in 1.53.
V4
Unstable. Will collect a certain amount of changes and then go.
Changes made:
- SourceId URL serialization is aware of URL encoding.
Trait Implementations§
source§impl Clone for ResolveVersion
impl Clone for ResolveVersion
source§fn clone(&self) -> ResolveVersion
fn clone(&self) -> ResolveVersion
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ResolveVersion
impl Debug for ResolveVersion
source§impl Default for ResolveVersion
impl Default for ResolveVersion
source§fn default() -> ResolveVersion
fn default() -> ResolveVersion
source§impl Ord for ResolveVersion
impl Ord for ResolveVersion
source§fn cmp(&self, other: &ResolveVersion) -> Ordering
fn cmp(&self, other: &ResolveVersion) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
source§impl PartialEq<ResolveVersion> for ResolveVersion
impl PartialEq<ResolveVersion> for ResolveVersion
source§fn eq(&self, other: &ResolveVersion) -> bool
fn eq(&self, other: &ResolveVersion) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd<ResolveVersion> for ResolveVersion
impl PartialOrd<ResolveVersion> for ResolveVersion
source§fn partial_cmp(&self, other: &ResolveVersion) -> Option<Ordering>
fn partial_cmp(&self, other: &ResolveVersion) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moreimpl Copy for ResolveVersion
impl Eq for ResolveVersion
impl StructuralEq for ResolveVersion
impl StructuralPartialEq for ResolveVersion
Auto Trait Implementations§
impl RefUnwindSafe for ResolveVersion
impl Send for ResolveVersion
impl Sync for ResolveVersion
impl Unpin for ResolveVersion
impl UnwindSafe for ResolveVersion
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
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
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> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 1 byte
Size for each variant:
V1
: 0 bytesV2
: 0 bytesV3
: 0 bytesV4
: 0 bytes