pub enum ParseError {
UnsupportedUrlScheme,
MissingRequiredField(PurlField),
InvalidPackageType,
InvalidQualifier,
InvalidEscape,
}Expand description
An error returned when trying to parse an invalid PURL.
Variants§
UnsupportedUrlScheme
The URL scheme is not pkg.
§Example
use std::str::FromStr;
use purl::{GenericPurl, ParseError};
assert!(matches!(
GenericPurl::<String>::from_str("http://example.com"),
Err(ParseError::UnsupportedUrlScheme),
));MissingRequiredField(PurlField)
The PURL is incomplete.
§Example
use std::str::FromStr;
use purl::{GenericPurl, ParseError, PurlField};
assert!(matches!(
GenericPurl::<String>::from_str("pkg:npm"),
Err(ParseError::MissingRequiredField(PurlField::Name)),
));InvalidPackageType
The package type contains invalid characters.
§Example
use std::str::FromStr;
use purl::{GenericPurl, ParseError};
assert!(matches!(
// Because the package type was omitted,
// the namespace is seen to be the package type.
GenericPurl::<String>::from_str("pkg:@acme/example"),
Err(ParseError::InvalidPackageType),
));InvalidQualifier
The PURL contains invalid qualifiers.
§Example
use std::str::FromStr;
use purl::{GenericPurl, ParseError};
assert!(matches!(
GenericPurl::<String>::from_str("pkg:npm/example?="),
Err(ParseError::InvalidQualifier),
));InvalidEscape
The PURL contains illegal escaped characters.
§Example
use std::str::FromStr;
use purl::{GenericPurl, ParseError};
assert!(matches!(
GenericPurl::<String>::from_str("pkg:npm/%80"),
Err(ParseError::InvalidEscape),
));Trait Implementations§
Source§impl Debug for ParseError
impl Debug for ParseError
Source§impl Display for ParseError
impl Display for ParseError
Source§impl Error for ParseError
impl Error for ParseError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
Source§impl From<Infallible> for ParseError
impl From<Infallible> for ParseError
Source§fn from(_: Infallible) -> Self
fn from(_: Infallible) -> Self
Converts to this type from the input type.
Source§impl From<ParseError> for PackageError
Available on crate feature package-type only.
impl From<ParseError> for PackageError
Available on crate feature
package-type only.Source§fn from(source: ParseError) -> Self
fn from(source: ParseError) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for ParseError
impl RefUnwindSafe for ParseError
impl Send for ParseError
impl Sync for ParseError
impl Unpin for ParseError
impl UnwindSafe for ParseError
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