You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: vanilla.rs
    path of file: ./repos/lodestone/core/src/implementations/minecraft
    
    the code of the file until where you have to start completion: use color_eyre::eyre::{eyre, Context, ContextCompat};
use serde_json::Value;

use crate::error::Error;

pub async fn get_vanilla_minecraft_versions() -> Result<Vec<String>, Error> {
    let http = reqwest::Client::new();

    let response: Value = serde_json::from_str(
        http.get("https://launchermeta.mojang.com/mc/game/version_manifest.json")
            .send()
            .await
            .context("Failed to get vanilla versions")?
            .text()
            .await
            .context("Failed to get vanilla versions")?
            .as_str(),
    )
    .context("Failed to get vanilla versions")?;

    let mut versions = Vec::new();

    for version in response
        .get("versions")
        .context("Failed to get vanilla versions, response does not contain versions")?
        .as_array()
        .context("Failed to get vanilla versions")?
    {
       
    
pub async fn get_vanilla_minecraft_versions() -> Result<Vec<String>, Error> {
    let http = reqwest::Client::new();

    let response: Value = serde_json::from_str(
        http.get("https://launchermeta.mojang.com/mc/game/version_manifest.json")
            .send()
            .await
            .context("Failed to get vanilla versions")?
            .text()
            .await
            .context("Failed to get vanilla versions")?
            .as_str(),
    )
    .context("Failed to get vanilla versions")?;

    let mut versions = Vec::new();

    for version in response
        .get("versions")
        .context("Failed to get vanilla versions, response does not contain versions")?
        .as_array()
        .context("Failed to get vanilla versions")?
    {
        let version = version
            .as_object()
            .context("Failed to get vanilla versions")?
            .get("id")
            .context("Failed to get vanilla versions")?
            .as_str()
            .ok_or_else(|| -> Error {
                eyre!("Failed to get vanilla versions. Version string is not a string").into()
            })
            .map(|version| version.to_string())?;

        versions.push(version);
    }

    Ok(versions)
}