Skip to main content

relay_knowledge/domain/code/dependencies/
mod.rs

1//! Defines dependency declarations extracted from repository manifests and lock files.
2
3use serde::{Deserialize, Serialize};
4
5use super::RepositoryCodeRange;
6
7#[cfg(test)]
8mod mod_tests;
9
10/// Dependency declaration extracted from package manager manifest or lock files.
11#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
12pub struct CodeDependencyRecord {
13    pub repository_id: String,
14    pub source_scope: String,
15    pub dependency_id: String,
16    pub file_id: String,
17    pub path: String,
18    pub language_id: String,
19    pub ecosystem: String,
20    pub package_name: String,
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub requirement: Option<String>,
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub resolved_version: Option<String>,
25    pub dependency_group: String,
26    pub source_kind: String,
27    pub is_lockfile: bool,
28    pub line_range: RepositoryCodeRange,
29    pub excerpt: String,
30}