pub struct SystemDependency {
pub name: PackageName,
pub version: String,
pub kind: DependencyKind,
pub condition: Option<Condition>,
}Expand description
A system dependency declared with system = true on a
[dependencies] / [dev-dependencies] entry.
System dependencies are externally provided (system libraries,
SDKs, installed tools). Cabin never resolves, fetches,
downloads, or installs them — cabin-system-deps probes them
via pkg-config at build time, and the resulting cflags /
ldflags are merged into the per-package build flags before
the planner runs. The typed value round-trips through
cabin metadata, the canonical package metadata, and the
index metadata so external tooling sees the system-dep set
alongside the Cabin-package deps.
Fields§
§name: PackageNameThe dependency name as written in the manifest.
version: StringVersion requirement string for pkg-config. Cabin does
not interpret it as a SemVer constraint; the system-deps
layer translates the supported comparators for
pkg-config and reports unsupported forms as errors.
kind: DependencyKindWhich dependency table the entry was declared in
([dependencies] or [dev-dependencies]). Drives per-kind
activation: a dev-kind system dep is only probed when
cabin test is running, mirroring the Cabin-package
dev-dep rule.
condition: Option<Condition>Optional target condition. Some when the system
dependency was declared inside a
[target.'cfg(...)'.<kind>-dependencies] table. The
condition is preserved so package / index metadata stays
portable across platforms.
Trait Implementations§
Source§impl Clone for SystemDependency
impl Clone for SystemDependency
Source§fn clone(&self) -> SystemDependency
fn clone(&self) -> SystemDependency
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 SystemDependency
impl Debug for SystemDependency
Source§impl<'de> Deserialize<'de> for SystemDependency
impl<'de> Deserialize<'de> for SystemDependency
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 SystemDependency
impl PartialEq for SystemDependency
Source§fn eq(&self, other: &SystemDependency) -> bool
fn eq(&self, other: &SystemDependency) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for SystemDependency
impl Serialize for SystemDependency
impl Eq for SystemDependency
impl StructuralPartialEq for SystemDependency
Auto Trait Implementations§
impl Freeze for SystemDependency
impl RefUnwindSafe for SystemDependency
impl Send for SystemDependency
impl Sync for SystemDependency
impl Unpin for SystemDependency
impl UnsafeUnpin for SystemDependency
impl UnwindSafe for SystemDependency
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.