pub struct ResolvedVersion {
pub sha: String,
pub resolved_ref: String,
}Expand description
Centralized version resolver for efficient SHA resolution
The VersionResolver is responsible for resolving all dependency versions
to their corresponding Git commit SHAs before any worktree operations.
This ensures maximum efficiency and deduplication.
§Example
let cache = Cache::new()?;
let mut resolver = VersionResolver::new(cache);
// Add versions to resolve
resolver.add_version("community", "https://github.com/example/repo.git", Some("v1.0.0"), ResolutionMode::Version);
resolver.add_version("community", "https://github.com/example/repo.git", Some("main"), ResolutionMode::GitRef);
// Batch resolve all versions to SHAs
resolver.resolve_all(None).await?;
// Get resolved SHA for a specific version
let sha = resolver.get_resolved_sha("community", "v1.0.0");Resolved version information
Fields§
§sha: StringThe resolved SHA-1 hash
resolved_ref: StringThe resolved version (e.g., “latest” -> “v2.0.0”) If no constraint resolution happened, this will be the same as input
Trait Implementations§
Source§impl Clone for ResolvedVersion
impl Clone for ResolvedVersion
Source§fn clone(&self) -> ResolvedVersion
fn clone(&self) -> ResolvedVersion
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 moreAuto Trait Implementations§
impl Freeze for ResolvedVersion
impl RefUnwindSafe for ResolvedVersion
impl Send for ResolvedVersion
impl Sync for ResolvedVersion
impl Unpin for ResolvedVersion
impl UnwindSafe for ResolvedVersion
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<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 more