Skip to main content

Go

Struct Go 

Source
pub struct Go;
Expand description

Adapter for Go modules.

Trait Implementations§

Source§

impl PackageManager for Go

Source§

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<()>

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<()>

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

Human-readable name for this adapter (e.g., “npm”, “pnpm”, “uv”).
Source§

fn detect(&self, path: &Path) -> bool

Check if this adapter applies to the given project directory. Read more
Source§

fn bloat_dirs(&self, path: &Path) -> Vec<BloatDir>

List all bloat directories this adapter manages in the given project. Read more
Source§

fn lockfiles(&self) -> &'static [&'static str]

The file this manager rebuilds its bloat directory from. Read more
Source§

fn runtime_tag(&self, project_path: &Path, dir_name: &str) -> Option<String>

The language runtime a bloat directory is built against, recorded at prune time. Read more
Source§

fn drift(&self, project_path: &Path) -> Vec<DriftReport>

Installed-but-unrecorded packages, as data instead of a refusal. Read more
Source§

fn opt_in(&self) -> bool

Whether this adapter is inert until the user enables it in settings. Read more

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.