pub struct Dependency {
pub name: PackageName,
pub source: DependencySource,
pub kind: DependencyKind,
pub optional: bool,
pub features: Vec<String>,
pub default_features: bool,
pub condition: Option<Condition>,
}Expand description
A package-level Cabin dependency declared in
[dependencies] or [dev-dependencies].
System dependencies (system = true entries) are not
represented here — they live in SystemDependency because
they have a different schema and never enter Cabin
resolution.
Fields§
§name: PackageNameThe dependency alias used in the manifest. The alias must
equal the depended-on package’s [package].name.
source: DependencySource§kind: DependencyKindWhich manifest section the dependency was declared in.
Defaults to DependencyKind::Normal so manifests that
only use [dependencies] keep their previous serialized
shape.
optional: boolWhether the dependency is optional. Optional dependencies
only enter ordinary resolution / fetch / build when a
feature enables them via dep:<name> or
<name>/<feature>.
features: Vec<String>Features requested on the dependency package by this edge.
Stored as the raw manifest strings; the feature resolver
validates them against the depended-on package’s
[features] table.
default_features: boolWhether this edge requests the dependency package’s
default feature. Defaults to true. default-features = false only narrows this edge — if another edge requests
defaults for the same package, the unified result still
includes them.
condition: Option<Condition>Optional target condition. Some when the dependency was
declared inside a [target.'cfg(...)'.<kind>] table;
None for unconditional declarations. Conditional
dependencies whose condition does not match the
evaluation crate::TargetPlatform are filtered out by
cabin-workspace / cabin-feature / cabin-build
before reaching the resolver or the build planner, but they
stay on Package::dependencies for metadata round-trip.
Implementations§
Source§impl Dependency
impl Dependency
Sourcepub fn matches_platform(&self, platform: &TargetPlatform) -> bool
pub fn matches_platform(&self, platform: &TargetPlatform) -> bool
Whether this declaration is active for the given
crate::TargetPlatform. Unconditional declarations
are always active; conditional declarations are active
iff their condition evaluates to true.
Trait Implementations§
Source§impl Clone for Dependency
impl Clone for Dependency
Source§fn clone(&self) -> Dependency
fn clone(&self) -> Dependency
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Dependency
impl Debug for Dependency
Source§impl<'de> Deserialize<'de> for Dependency
impl<'de> Deserialize<'de> for Dependency
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for Dependency
impl PartialEq for Dependency
Source§fn eq(&self, other: &Dependency) -> bool
fn eq(&self, other: &Dependency) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for Dependency
impl Serialize for Dependency
impl Eq for Dependency
impl StructuralPartialEq for Dependency
Auto Trait Implementations§
impl Freeze for Dependency
impl RefUnwindSafe for Dependency
impl Send for Dependency
impl Sync for Dependency
impl Unpin for Dependency
impl UnsafeUnpin for Dependency
impl UnwindSafe for Dependency
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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
key and return true if they are equal.