pub struct LicenseInfo {
pub declared: Vec<LicenseExpression>,
pub concluded: Option<LicenseExpression>,
pub evidence: Vec<LicenseEvidence>,
}Expand description
License information for a component
Fields§
§declared: Vec<LicenseExpression>Declared licenses from the component metadata
concluded: Option<LicenseExpression>Concluded license after analysis
evidence: Vec<LicenseEvidence>License evidence from scanning
Implementations§
Source§impl LicenseInfo
impl LicenseInfo
Sourcepub fn add_declared(&mut self, license: LicenseExpression)
pub fn add_declared(&mut self, license: LicenseExpression)
Add a declared license
Sourcepub fn all_licenses(&self) -> Vec<&LicenseExpression>
pub fn all_licenses(&self) -> Vec<&LicenseExpression>
Get all unique license expressions
Sourcepub fn effective_family(&self) -> LicenseFamily
pub fn effective_family(&self) -> LicenseFamily
Get the effective license family across all expressions.
Per-expression OR-choice is already resolved inside
LicenseExpression::family; multiple expressions (declared and
concluded) are treated conjunctively (conservative), so the most
restrictive family wins:
Proprietary > Copyleft > WeakCopyleft > Permissive > PublicDomain > Other.
Returns LicenseFamily::Other when no licenses are present.
Sourcepub fn has_conflicts(&self) -> bool
pub fn has_conflicts(&self) -> bool
Check if there are potential license conflicts across license expressions (declared and concluded).
A conflict exists when one expression requires copyleft compliance and another declares proprietary terms. Note that a single expression like “MIT OR GPL-2.0” is NOT a conflict — it offers a choice.
Trait Implementations§
Source§impl Clone for LicenseInfo
impl Clone for LicenseInfo
Source§fn clone(&self) -> LicenseInfo
fn clone(&self) -> LicenseInfo
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LicenseInfo
impl Debug for LicenseInfo
Source§impl Default for LicenseInfo
impl Default for LicenseInfo
Source§fn default() -> LicenseInfo
fn default() -> LicenseInfo
Source§impl<'de> Deserialize<'de> for LicenseInfo
impl<'de> Deserialize<'de> for LicenseInfo
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 LicenseInfo
impl RefUnwindSafe for LicenseInfo
impl Send for LicenseInfo
impl Sync for LicenseInfo
impl Unpin for LicenseInfo
impl UnsafeUnpin for LicenseInfo
impl UnwindSafe for LicenseInfo
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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