Skip to main content

Toolchain

Trait Toolchain 

Source
pub trait Toolchain: Send + Sync {
    type Installation: Installation;

    // Required method
    fn check(
        &self,
        host: &Host,
    ) -> impl Future<Output = Result<(), ToolchainError<Self::Installation>>> + Send;
}
Expand description

Trait for toolchain dependencies that can be checked and installed.

Implementors represent a specific toolchain configuration (e.g., Rust with certain targets, Android SDK with specific components). The associated Installation type preserves full type information through the composition, enabling zero-cost abstractions for parallel/sequential installation plans.

Required Associated Types§

Source

type Installation: Installation

The installation type returned by fix().

Required Methods§

Source

fn check( &self, host: &Host, ) -> impl Future<Output = Result<(), ToolchainError<Self::Installation>>> + Send

Check if the toolchain is properly installed on host.

Returns Ok(()) if all components are available, or Err describing what is missing.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl Toolchain for ()

Source§

type Installation = ()

Source§

fn check( &self, _host: &Host, ) -> impl Future<Output = Result<(), ToolchainError<Self::Installation>>> + Send

Source§

impl<T0: Toolchain, T1: Toolchain, T2: Toolchain, T3: Toolchain, T4: Toolchain, T5: Toolchain, T6: Toolchain, T7: Toolchain, T8: Toolchain, T9: Toolchain, T10: Toolchain, T11: Toolchain, T12: Toolchain, T13: Toolchain, T14: Toolchain> Toolchain for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)

Source§

impl<T0: Toolchain, T1: Toolchain, T2: Toolchain, T3: Toolchain, T4: Toolchain, T5: Toolchain, T6: Toolchain, T7: Toolchain, T8: Toolchain, T9: Toolchain, T10: Toolchain, T11: Toolchain, T12: Toolchain, T13: Toolchain> Toolchain for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)

Source§

impl<T0: Toolchain, T1: Toolchain, T2: Toolchain, T3: Toolchain, T4: Toolchain, T5: Toolchain, T6: Toolchain, T7: Toolchain, T8: Toolchain, T9: Toolchain, T10: Toolchain, T11: Toolchain, T12: Toolchain> Toolchain for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)

Source§

impl<T0: Toolchain, T1: Toolchain, T2: Toolchain, T3: Toolchain, T4: Toolchain, T5: Toolchain, T6: Toolchain, T7: Toolchain, T8: Toolchain, T9: Toolchain, T10: Toolchain, T11: Toolchain> Toolchain for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

Source§

impl<T0: Toolchain, T1: Toolchain, T2: Toolchain, T3: Toolchain, T4: Toolchain, T5: Toolchain, T6: Toolchain, T7: Toolchain, T8: Toolchain, T9: Toolchain, T10: Toolchain> Toolchain for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

Source§

impl<T0: Toolchain, T1: Toolchain, T2: Toolchain, T3: Toolchain, T4: Toolchain, T5: Toolchain, T6: Toolchain, T7: Toolchain, T8: Toolchain, T9: Toolchain> Toolchain for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)

Source§

impl<T0: Toolchain, T1: Toolchain, T2: Toolchain, T3: Toolchain, T4: Toolchain, T5: Toolchain, T6: Toolchain, T7: Toolchain, T8: Toolchain> Toolchain for (T0, T1, T2, T3, T4, T5, T6, T7, T8)

Source§

impl<T0: Toolchain, T1: Toolchain, T2: Toolchain, T3: Toolchain, T4: Toolchain, T5: Toolchain, T6: Toolchain, T7: Toolchain> Toolchain for (T0, T1, T2, T3, T4, T5, T6, T7)

Source§

impl<T0: Toolchain, T1: Toolchain, T2: Toolchain, T3: Toolchain, T4: Toolchain, T5: Toolchain, T6: Toolchain> Toolchain for (T0, T1, T2, T3, T4, T5, T6)

Source§

impl<T0: Toolchain, T1: Toolchain, T2: Toolchain, T3: Toolchain, T4: Toolchain, T5: Toolchain> Toolchain for (T0, T1, T2, T3, T4, T5)

Source§

impl<T0: Toolchain, T1: Toolchain, T2: Toolchain, T3: Toolchain, T4: Toolchain> Toolchain for (T0, T1, T2, T3, T4)

Source§

impl<T0: Toolchain, T1: Toolchain, T2: Toolchain, T3: Toolchain> Toolchain for (T0, T1, T2, T3)

Source§

impl<T0: Toolchain, T1: Toolchain, T2: Toolchain> Toolchain for (T0, T1, T2)

Source§

impl<T0: Toolchain, T1: Toolchain> Toolchain for (T0, T1)

Source§

impl<T0: Toolchain> Toolchain for (T0,)

Source§

type Installation = (Option<<T0 as Toolchain>::Installation>,)

Source§

async fn check( &self, host: &Host, ) -> Result<(), ToolchainError<Self::Installation>>

Implementors§

Source§

impl Toolchain for AndroidBuildTools

Source§

type Installation = AndroidBuildToolsInstallation

Source§

impl Toolchain for AndroidNdk

Source§

type Installation = AndroidNdkInstallation

Source§

impl Toolchain for AndroidPlatformTools

Source§

type Installation = AndroidPlatformToolsInstallation

Source§

impl Toolchain for AndroidRustTargets

Source§

impl Toolchain for AndroidSdk

Source§

type Installation = AndroidSdkInstallation

Source§

impl Toolchain for AndroidSdkPlatforms

Source§

type Installation = AndroidSdkPlatformsInstallation

Source§

impl Toolchain for AppleSdk

Source§

impl Toolchain for Brew

Source§

impl Toolchain for CargoHelpers

Source§

impl Toolchain for Cmake

Source§

impl Toolchain for Esp32Toolchain

Source§

impl Toolchain for Gtk4Toolchain

Source§

impl Toolchain for Java

Source§

type Installation = JavaInstallation

Source§

impl Toolchain for Kotlin

Source§

type Installation = KotlinInstallation

Source§

impl Toolchain for LinuxSystemToolchain

Source§

impl Toolchain for Meson

Source§

impl Toolchain for PackageManagerToolchain

Source§

impl Toolchain for RustToolchain

Source§

impl Toolchain for Sccache

Source§

impl Toolchain for SelectedToolchainTargets

Source§

impl Toolchain for WasmPack

Source§

impl Toolchain for WinUiToolchain

Source§

impl Toolchain for WindowsArm64LlvmToolchain

Source§

impl Toolchain for Xcode