pub struct CargoInstall {
pub id: ActionId,
pub source: CargoSource,
pub crate_name: Option<String>,
pub package: Option<String>,
pub profile: Option<String>,
pub features: Vec<String>,
pub install_to: PathBuf,
pub deps: Vec<ActionId>,
}Expand description
Action that installs a binary crate via cargo install.
output_hash is the SHA-256 of the resulting binary file’s content,
so a successful re-install with identical inputs yields a stable hash.
Fields§
§id: ActionIdAction identifier for the plan.
source: CargoSourceWhere the crate source lives.
crate_name: Option<String>Binary target to install (--bin). When None, defaults to the last
::-separated segment of Self::id (the convention used by
manifest-derived ids).
package: Option<String>Package to select from the source, when it holds more than one
(cargo’s positional [CRATE] argument). None leaves the choice to
cargo — see the argv comment in Action::execute for why this has
no implicit default.
profile: Option<String>Cargo profile (--profile). None leaves cargo’s default, release.
features: Vec<String>Cargo features to enable.
install_to: PathBuf--root argument: cargo writes the binary to <install_to>/bin/<crate>.
deps: Vec<ActionId>IDs of actions that must complete before this one runs.
Trait Implementations§
Source§impl Action for CargoInstall
impl Action for CargoInstall
Source§fn output_present<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 Ctx,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn output_present<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 Ctx,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
The installed binary must still be on this machine. A cached
Success alone proves only that some machine built it.
Source§fn input_hash<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 Ctx,
) -> Pin<Box<dyn Future<Output = Result<Sha256, BuildError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn input_hash<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 Ctx,
) -> Pin<Box<dyn Future<Output = Result<Sha256, BuildError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 Ctx,
) -> Pin<Box<dyn Future<Output = Result<BuildOutput, BuildError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 Ctx,
) -> Pin<Box<dyn Future<Output = Result<BuildOutput, BuildError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn is_coordinator(&self) -> bool
fn is_coordinator(&self) -> bool
true for actions that only coordinate other actions (federation’s
RepolithSync) rather than doing bounded work themselves. Read more