Skip to main content

provenant/license_detection/models/
license.rs

1// SPDX-FileCopyrightText: Provenant contributors
2// SPDX-License-Identifier: Apache-2.0
3
4//! License metadata loaded from .LICENSE files.
5
6use rkyv::Archive;
7use serde::{Deserialize, Serialize};
8
9/// License metadata loaded from .LICENSE files.
10#[derive(
11    Debug,
12    Clone,
13    PartialEq,
14    Default,
15    Serialize,
16    Deserialize,
17    Archive,
18    rkyv::Serialize,
19    rkyv::Deserialize,
20)]
21pub struct License {
22    pub key: String,
23    pub short_name: Option<String>,
24    pub name: String,
25    pub language: Option<String>,
26    pub spdx_license_key: Option<String>,
27    pub other_spdx_license_keys: Vec<String>,
28    pub category: Option<String>,
29    pub owner: Option<String>,
30    pub homepage_url: Option<String>,
31    pub text: String,
32    pub reference_urls: Vec<String>,
33    pub osi_license_key: Option<String>,
34    pub text_urls: Vec<String>,
35    pub osi_url: Option<String>,
36    pub faq_url: Option<String>,
37    pub other_urls: Vec<String>,
38    pub notes: Option<String>,
39    pub is_deprecated: bool,
40    pub is_exception: bool,
41    pub is_unknown: bool,
42    pub is_generic: bool,
43    pub replaced_by: Vec<String>,
44    pub minimum_coverage: Option<u8>,
45    pub standard_notice: Option<String>,
46    pub ignorable_copyrights: Option<Vec<String>>,
47    pub ignorable_holders: Option<Vec<String>>,
48    pub ignorable_authors: Option<Vec<String>>,
49    pub ignorable_urls: Option<Vec<String>>,
50    pub ignorable_emails: Option<Vec<String>>,
51}