Function dofigen_lib::from_json

source ·
pub fn from_json(input: String) -> Result<Image>
👎Deprecated since 1.2.0: The YAML reader can read both JSON and YAML. Should use ‘from’
Expand description

Parse an Image from a JSON string.

§Examples

Basic YAML parsing

use dofigen_lib::{from_json, Image};

let json = r#"{ "image": "scratch" }"#;
let image: Image = from_json(json.to_string()).unwrap();
assert_eq!(
    image,
    Image {
        image: String::from("scratch"),
        ..Default::default()
    }
);

Basic YAML parsing

use dofigen_lib::{from_json, Image, Builder, Artifact};

let json = r#"
{
    "builders": [
        {
            "name": "builder",
            "image": "ekidd/rust-musl-builder",
            "adds": [
                "*"
            ],
            "script": [
                "cargo build --release"
            ]
        }
    ],
    "image": "scratch",
    "artifacts": [
        {
            "builder": "builder",
            "source": "/home/rust/src/target/x86_64-unknown-linux-musl/release/template-rust",
            "destination": "/app"
        }
    ]
}"#;

let image: Image = from_json(json.to_string()).unwrap();
assert_eq!(
    image,
    Image {
        builders: Some(Vec::from([Builder {
            name: Some(String::from("builder")),
            image: String::from("ekidd/rust-musl-builder"),
            adds: Some(Vec::from([String::from("*")])),
            script: Some(Vec::from([String::from("cargo build --release")])),
            ..Default::default()
        }])),
        image: String::from("scratch"),
        artifacts: Some(Vec::from([Artifact {
            builder: String::from("builder"),
            source: String::from(
                "/home/rust/src/target/x86_64-unknown-linux-musl/release/template-rust"
            ),
            destination: String::from("/app"),
            ..Default::default()
        }])),
        ..Default::default()
    }
);