manifesta 0.1.1

Index and access all available Rust releases
Documentation
use crate::{ManifestaError, TResult};
use serde::Deserialize;

#[derive(Deserialize)]
struct Manifest {
    pkg: Pkg,
}
#[derive(Deserialize)]
struct Pkg {
    rust: Rust,
}

#[derive(Deserialize)]
struct Rust {
    version: String,
}

pub(crate) fn parse_release_manifest(manifest_contents: &[u8]) -> TResult<semver::Version> {
    let parsed: Manifest = toml::from_slice(manifest_contents)?;

    let version = parsed
        .pkg
        .rust
        .version
        .split_ascii_whitespace()
        .next()
        .ok_or(ManifestaError::RustVersionNotFoundInManifest)?;

    Ok(semver::Version::parse(version)?)
}