pub struct LicenseExpression {
pub expression: String,
pub is_valid_spdx: bool,
pub resolved_name: Option<String>,
}Expand description
License expression following SPDX license expression syntax
Fields§
§expression: StringThe raw license expression string
is_valid_spdx: boolWhether this is a valid SPDX expression
resolved_name: Option<String>Human-readable name resolved from the document’s license
definitions (e.g. SPDX hasExtractedLicensingInfos for a bare
LicenseRef-* expression). Display metadata only: excluded from
equality/hashing below so identical expressions stay equal (and
pre-existing serialized SBOMs stay diff-identical) whether or not
resolution ran.
Implementations§
Source§impl LicenseExpression
impl LicenseExpression
Sourcepub fn display_name(&self) -> &str
pub fn display_name(&self) -> &str
Human-readable display form: the name resolved from the document’s
license definitions (e.g. SPDX hasExtractedLicensingInfos for a bare
LicenseRef-*) when present, otherwise the raw expression. For
rendering/emit only — equality and identity stay on expression.
Sourcepub fn from_spdx_id(id: &str) -> Self
pub fn from_spdx_id(id: &str) -> Self
Create from an SPDX license ID
Sourcepub fn is_permissive(&self) -> bool
pub fn is_permissive(&self) -> bool
Check if this expression includes a permissive license option.
For OR expressions (e.g., “MIT OR GPL-2.0”), returns true if at least one branch is permissive (the licensee can choose the permissive option). Falls back to substring matching for non-parseable expressions.
Sourcepub fn is_copyleft(&self) -> bool
pub fn is_copyleft(&self) -> bool
Check if this expression requires copyleft compliance.
Returns true if any license term in the expression is copyleft. Falls back to substring matching for non-parseable expressions.
Sourcepub fn family(&self) -> LicenseFamily
pub fn family(&self) -> LicenseFamily
Get the license family classification.
For compound expressions:
- OR: returns the most permissive option (licensee can choose)
- AND: returns the most restrictive requirement Falls back to substring matching for non-parseable expressions.
Trait Implementations§
Source§impl Clone for LicenseExpression
impl Clone for LicenseExpression
Source§fn clone(&self) -> LicenseExpression
fn clone(&self) -> LicenseExpression
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 LicenseExpression
impl Debug for LicenseExpression
Source§impl Default for LicenseExpression
impl Default for LicenseExpression
Source§impl<'de> Deserialize<'de> for LicenseExpression
impl<'de> Deserialize<'de> for LicenseExpression
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>,
Source§impl Display for LicenseExpression
impl Display for LicenseExpression
impl Eq for LicenseExpression
Source§impl Hash for LicenseExpression
impl Hash for LicenseExpression
Source§impl PartialEq for LicenseExpression
Equality/hashing deliberately ignore resolved_name: the raw
expression is the license identity.
impl PartialEq for LicenseExpression
Equality/hashing deliberately ignore resolved_name: the raw
expression is the license identity.
Auto Trait Implementations§
impl Freeze for LicenseExpression
impl RefUnwindSafe for LicenseExpression
impl Send for LicenseExpression
impl Sync for LicenseExpression
impl Unpin for LicenseExpression
impl UnsafeUnpin for LicenseExpression
impl UnwindSafe for LicenseExpression
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
ToCompactString::to_compact_string() Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString. Read moreSource§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.