pub struct Package {Show 42 fields
pub package_type: Option<PackageType>,
pub namespace: Option<String>,
pub name: Option<String>,
pub version: Option<String>,
pub qualifiers: Option<HashMap<String, String>>,
pub subpath: Option<String>,
pub primary_language: Option<String>,
pub description: Option<String>,
pub release_date: Option<String>,
pub parties: Vec<Party>,
pub keywords: Vec<String>,
pub homepage_url: Option<String>,
pub download_url: Option<String>,
pub size: Option<u64>,
pub sha1: Option<String>,
pub md5: Option<String>,
pub sha256: Option<String>,
pub sha512: Option<String>,
pub bug_tracking_url: Option<String>,
pub code_view_url: Option<String>,
pub vcs_url: Option<String>,
pub copyright: Option<String>,
pub holder: Option<String>,
pub declared_license_expression: Option<String>,
pub declared_license_expression_spdx: Option<String>,
pub license_detections: Vec<LicenseDetection>,
pub other_license_expression: Option<String>,
pub other_license_expression_spdx: Option<String>,
pub other_license_detections: Vec<LicenseDetection>,
pub extracted_license_statement: Option<String>,
pub notice_text: Option<String>,
pub source_packages: Vec<String>,
pub is_private: bool,
pub is_virtual: bool,
pub extra_data: Option<HashMap<String, Value>>,
pub repository_homepage_url: Option<String>,
pub repository_download_url: Option<String>,
pub api_data_url: Option<String>,
pub purl: Option<String>,
pub package_uid: String,
pub datafile_paths: Vec<String>,
pub datasource_ids: Vec<DatasourceId>,
}Expand description
Top-level assembled package, created by merging one or more PackageData
objects from related manifest/lockfiles (e.g., package.json + package-lock.json).
Compatible with ScanCode Toolkit output format. The key differences from
PackageData are:
package_uid: unique identifier (PURL with UUID qualifier)datafile_paths: list of all contributing filesdatasource_ids: list of all contributing parsers- Excludes
dependenciesandfile_references(hoisted to top-level)
Fields§
§package_type: Option<PackageType>§namespace: Option<String>§name: Option<String>§version: Option<String>§qualifiers: Option<HashMap<String, String>>§subpath: Option<String>§primary_language: Option<String>§description: Option<String>§release_date: Option<String>§parties: Vec<Party>§keywords: Vec<String>§homepage_url: Option<String>§download_url: Option<String>§size: Option<u64>§sha1: Option<String>§md5: Option<String>§sha256: Option<String>§sha512: Option<String>§bug_tracking_url: Option<String>§code_view_url: Option<String>§vcs_url: Option<String>§copyright: Option<String>§holder: Option<String>§declared_license_expression: Option<String>§declared_license_expression_spdx: Option<String>§license_detections: Vec<LicenseDetection>§other_license_expression: Option<String>§other_license_expression_spdx: Option<String>§other_license_detections: Vec<LicenseDetection>§extracted_license_statement: Option<String>§notice_text: Option<String>§source_packages: Vec<String>§is_private: bool§is_virtual: bool§extra_data: Option<HashMap<String, Value>>§repository_homepage_url: Option<String>§repository_download_url: Option<String>§api_data_url: Option<String>§purl: Option<String>§package_uid: StringUnique identifier for this package instance (PURL with UUID qualifier).
datafile_paths: Vec<String>Paths to all datafiles that contributed to this package.
datasource_ids: Vec<DatasourceId>Datasource identifiers for all parsers that contributed to this package.
Implementations§
Source§impl Package
impl Package
Sourcepub fn from_package_data(
package_data: &PackageData,
datafile_path: String,
) -> Self
pub fn from_package_data( package_data: &PackageData, datafile_path: String, ) -> Self
Create a Package from a PackageData and its source file path.
Generates a unique package_uid by appending a UUID qualifier to the PURL.
If the PackageData has no PURL, the package_uid will be an empty string.
Sourcepub fn update(&mut self, package_data: &PackageData, datafile_path: String)
pub fn update(&mut self, package_data: &PackageData, datafile_path: String)
Update this package with data from another PackageData.
Merges data from a related file (e.g., lockfile) into this package. Existing non-empty values are preserved; empty fields are filled from the new data. Lists (parties, license_detections) are merged.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Package
impl<'de> Deserialize<'de> for Package
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>,
Auto Trait Implementations§
impl Freeze for Package
impl RefUnwindSafe for Package
impl Send for Package
impl Sync for Package
impl Unpin for Package
impl UnsafeUnpin for Package
impl UnwindSafe for Package
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<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more