pub struct ResolvedDep {
pub name: String,
pub root: PathBuf,
pub source: DepSource,
}Expand description
Where a declared dependency’s source is rooted on disk, resolved from the manifest against a canonical project root.
PATH dependencies resolve their path relative to the project root and
canonicalize it. GIT dependencies require an exact commit rev and resolve
against a preserved local checkout (the vendored source) — see the module’s
fetch/vendor documentation. Both forms yield an
existing, canonicalized directory that the module loader may traverse.
§Vendoring
A git dependency’s source is expected to already be present on disk: largo
vendors an exactly-pinned checkout under <project>/.logos-deps/<name>-<rev>/
(a git clone + git checkout <rev>, done once and cached — the checkout is
content-addressed by its commit, so it is reproducible and never re-fetched).
The manifest’s path field on a git dependency names that resolved checkout
explicitly, which is what makes the exact-rev + closure-linking contract
provable offline: resolution reads the pinned source directory, never the
network. When only git/rev are given (no explicit path), resolution
looks in the conventional vendor directory.
Fields§
§name: StringThe dependency’s declared name (its [dependencies] key), also the alias
an Import <Name>. binds to.
root: PathBufThe canonicalized root directory the dependency’s modules live under.
source: DepSourceThe origin the source was resolved from, for the build manifest.
Trait Implementations§
Source§impl Clone for ResolvedDep
impl Clone for ResolvedDep
Source§fn clone(&self) -> ResolvedDep
fn clone(&self) -> ResolvedDep
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ResolvedDep
impl Debug for ResolvedDep
Source§impl PartialEq for ResolvedDep
impl PartialEq for ResolvedDep
impl Eq for ResolvedDep
impl StructuralPartialEq for ResolvedDep
Auto Trait Implementations§
impl Freeze for ResolvedDep
impl RefUnwindSafe for ResolvedDep
impl Send for ResolvedDep
impl Sync for ResolvedDep
impl Unpin for ResolvedDep
impl UnsafeUnpin for ResolvedDep
impl UnwindSafe for ResolvedDep
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.