Skip to main content

semifold_core/
dependency.rs

1use crate::PackageId;
2
3/// An internal package dependency discovered by an ecosystem adapter.
4#[derive(Clone, Debug, Eq, PartialEq)]
5pub struct Dependency {
6    pub package: PackageId,
7    pub kind: DependencyKind,
8    pub requirement: Option<String>,
9    pub source: DependencySource,
10}
11
12/// The semantic role of a package dependency.
13#[derive(Clone, Copy, Debug, Eq, PartialEq)]
14pub enum DependencyKind {
15    /// A configured graph edge without an ecosystem-specific dependency role.
16    Unspecified,
17    Runtime,
18    Development,
19    Build,
20    Optional,
21    Peer,
22}
23
24/// Where an internal dependency edge was declared.
25#[derive(Clone, Copy, Debug, Eq, PartialEq)]
26pub enum DependencySource {
27    Manifest,
28    Config,
29}