Skip to main content

provenant/license_detection/models/
license.rs

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