Skip to main content

WorkspaceMember

Struct WorkspaceMember 

Source
pub struct WorkspaceMember {
    pub package: String,
    pub version: Option<String>,
    pub workspace_deps: Vec<String>,
    pub dep_reqs: BTreeMap<String, String>,
    pub pin_reqs: BTreeMap<String, Vec<Option<String>>>,
}
Expand description

One crates.io-publishable Cargo workspace member and its intra-workspace (publishable) dependency crate names — a node in RustWorkspace.

Fields§

§package: String

The crate/package name ([package].name).

§version: Option<String>

The member’s declared/inherited version, or None when unresolved.

§workspace_deps: Vec<String>

The names of this member’s dependencies that are themselves publishable members of the same workspace — the edges that order the publish (each of these must be crates.io-index-visible before this member can publish). Only normal + build dependencies gate order; dev-dependencies are excluded (they never gate publish order and can legitimately cycle).

§dep_reqs: BTreeMap<String, String>

The literal version requirement string this member’s manifest declares for each intra-workspace dependency that carries one, keyed by dependency crate name (e.g. {"octl-core": "=0.4.0"} for octl-core = { path = "…", version = "=0.4.0" }). Only local declarations whose resolved package is another publishable member appear, and only when the manifest declares an explicit version on the dependency — a path-only or workspace = true-inherited edge (whose requirement is not literally in this manifest) is absent, not defaulted.

This is what makes the bump phase’s pin rewrite precise (release-rust-workspace-multicrate facet 3): the planner emits a pin rewrite only for an edge whose requirement literally equals =<from_version> (the lockstep convention), never for a caret/range/workspace = true edge it would otherwise clobber. Off-wire, like the rest of RustWorkspace.

§pin_reqs: BTreeMap<String, Vec<Option<String>>>

Every literal requirement declared for an intra-workspace dependency, across normal, dev, build, and target-specific dependency tables. None represents a local declaration with no literal version requirement. Unlike Self::dep_reqs, this preserves duplicate declarations so release planning can prove that every pin it asks the bump executor to rewrite is equivalent.

Trait Implementations§

Source§

impl Clone for WorkspaceMember

Source§

fn clone(&self) -> WorkspaceMember

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for WorkspaceMember

Source§

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

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

impl Eq for WorkspaceMember

Source§

impl PartialEq for WorkspaceMember

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for WorkspaceMember

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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, 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.