easy-install 1.3.11

easy-install
Documentation
use crate::InstallConfig;
use crate::install::install_artifacts;
use crate::tool::{filter_artifacts, get_artifact_url, not_found_asset_message};
use crate::types::{Nightly, Output};
use crate::error::Result;
use tracing::trace;

pub(crate) async fn install_from_nightly(
    nightly: &Nightly,
    config: &InstallConfig,
) -> Result<Output> {
    trace!("install_from_nightly {}", nightly);

    let artifacts = nightly
        .get_raw_artifacts(config.retry, config.timeout)
        .await?;
    let available: Vec<String> = artifacts.assets.iter().map(|a| a.name.clone()).collect();
    let artifact_url = get_artifact_url(artifacts, config)?;
    if artifact_url.is_empty() {
        not_found_asset_message(&nightly.url, config, Some(&available));
        return Ok(Output::new());
    }

    let artifact_url = filter_artifacts(artifact_url, config);
    install_artifacts(artifact_url, config).await
}