pub struct LicenseExpression {
pub expression: String,
pub is_valid_spdx: bool,
}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
Implementations§
Source§impl LicenseExpression
impl LicenseExpression
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
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for LicenseExpression
impl Display for LicenseExpression
Source§impl Hash for LicenseExpression
impl Hash for LicenseExpression
Source§impl PartialEq for LicenseExpression
impl PartialEq for LicenseExpression
Source§impl Serialize for LicenseExpression
impl Serialize for LicenseExpression
impl Eq for LicenseExpression
impl StructuralPartialEq for LicenseExpression
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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
Compare self to
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>
Converts
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>
Converts
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>
Fallible version of
ToCompactString::to_compact_string() Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
Converts the given value to a
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.