mirror of https://github.com/astral-sh/uv
Use `Cow` for source call (#3377)
This commit is contained in:
parent
37635fda56
commit
6d73db2b1e
|
|
@ -1,3 +1,4 @@
|
|||
use std::borrow::Cow;
|
||||
use std::fmt::{Display, Formatter};
|
||||
|
||||
use pep508_rs::{MarkerEnvironment, UnnamedRequirement};
|
||||
|
|
@ -58,16 +59,16 @@ impl UnresolvedRequirement {
|
|||
}
|
||||
|
||||
/// Return the version specifier or URL for the requirement.
|
||||
pub fn source(&self) -> Result<RequirementSource, ParsedUrlError> {
|
||||
pub fn source(&self) -> Result<Cow<'_, RequirementSource>, ParsedUrlError> {
|
||||
// TODO(konsti): This is a bad place to raise errors, we should have parsed the url earlier.
|
||||
match self {
|
||||
Self::Named(requirement) => Ok(requirement.source.clone()),
|
||||
Self::Named(requirement) => Ok(Cow::Borrowed(&requirement.source)),
|
||||
Self::Unnamed(requirement) => {
|
||||
let parsed_url = ParsedUrl::try_from(requirement.url.to_url())?;
|
||||
Ok(RequirementSource::from_parsed_url(
|
||||
Ok(Cow::Owned(RequirementSource::from_parsed_url(
|
||||
parsed_url,
|
||||
requirement.url.clone(),
|
||||
))
|
||||
)))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -365,7 +365,7 @@ impl<'a> SitePackages<'a> {
|
|||
[distribution] => {
|
||||
match RequirementSatisfaction::check(
|
||||
distribution,
|
||||
&entry.requirement.source()?,
|
||||
entry.requirement.source()?.as_ref(),
|
||||
)? {
|
||||
RequirementSatisfaction::Mismatch | RequirementSatisfaction::OutOfDate => {
|
||||
return Ok(SatisfiesResult::Unsatisfied(entry.requirement.to_string()))
|
||||
|
|
|
|||
Loading…
Reference in New Issue