fuels-macros 0.77.0

Fuel Rust SDK macros to generate types from ABI.
Documentation
use std::convert::TryFrom;

use syn::{Error, LitStr};

use crate::parse_utils::{Command, UniqueNameValues};

#[derive(Debug, Clone)]
pub struct LoadScriptCommand {
    pub name: String,
    pub script: LitStr,
    pub wallet: String,
}

impl TryFrom<Command> for LoadScriptCommand {
    type Error = Error;

    fn try_from(command: Command) -> Result<Self, Self::Error> {
        let name_values = UniqueNameValues::new(command.contents)?;
        name_values.validate_has_no_other_names(&["name", "script", "wallet"])?;

        let name = name_values.get_as_lit_str("name")?.value();
        let script = name_values.get_as_lit_str("script")?.clone();
        let wallet = name_values.get_as_lit_str("wallet")?.value();

        Ok(Self {
            name,
            script,
            wallet,
        })
    }
}