pub struct Go;Expand description
Adapter for Go modules.
Trait Implementations§
Source§impl PackageManager for Go
impl PackageManager for Go
Source§fn enforce_lockfile(&self, path: &Path, policy: EnforcePolicy) -> Result<()>
fn enforce_lockfile(&self, path: &Path, policy: EnforcePolicy) -> Result<()>
go mod tidy reconciles go.mod and go.sum against the real imports, and can
remove a requirement nothing imports any more — which is exactly why it is not
the default. With go.sum present the module cache is verified instead, which
never touches tracked files. tidy is reached only when there is no go.sum to
bootstrap from, or when the user opted in.
Source§fn restore(&self, path: &Path, timeout: Duration) -> Result<()>
fn restore(&self, path: &Path, timeout: Duration) -> Result<()>
The no-record path (devp restore <path>), where whether this repository
vendored is a guess: vendor/ on disk means regenerate it, otherwise refill the
module cache. After a prune the guess is always wrong for a vendored repository —
the prune is what removed vendor/ — which is why restore --last-run goes
through Self::restore_named with the recorded name instead of through here.
Source§fn restore_named(
&self,
path: &Path,
dir_name: &str,
_runtime: Option<&str>,
timeout: Duration,
) -> Result<()>
fn restore_named( &self, path: &Path, dir_name: &str, _runtime: Option<&str>, timeout: Duration, ) -> Result<()>
Rebuild the directory the prune recorded, not the one a guess suggests.
The default restore_named fell through to Self::restore, whose
vendor-exists check runs after the prune deleted vendor/ — so it always chose
go mod download, which exits 0 without recreating the tree, and the pass
printed “restored” over a directory that was still gone.
Source§fn name(&self) -> &'static str
fn name(&self) -> &'static str
Source§fn detect(&self, path: &Path) -> bool
fn detect(&self, path: &Path) -> bool
Source§fn bloat_dirs(&self, path: &Path) -> Vec<BloatDir>
fn bloat_dirs(&self, path: &Path) -> Vec<BloatDir>
Source§fn lockfiles(&self) -> &'static [&'static str]
fn lockfiles(&self) -> &'static [&'static str]
Source§fn runtime_tag(&self, project_path: &Path, dir_name: &str) -> Option<String>
fn runtime_tag(&self, project_path: &Path, dir_name: &str) -> Option<String>
Auto Trait Implementations§
impl Freeze for Go
impl RefUnwindSafe for Go
impl Send for Go
impl Sync for Go
impl Unpin for Go
impl UnsafeUnpin for Go
impl UnwindSafe for Go
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> 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> ⓘ
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> ⓘ
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