chain-spec-generator 13.0.1-beta.196

Generates a chainspec artifact for use in genesis block creation of a Xand network.
Documentation
pub(crate) mod error;

use error::{Error, Result};

pub(crate) type JsonValue = serde_json::Value;
pub(crate) type JsonMap = serde_json::map::Map<String, JsonValue>;

pub(crate) trait JsonTryGetMut {
    fn try_get_mut(&mut self, key: &str) -> Result<&mut JsonValue>;
}

pub(crate) trait JsonTryAsObjectMut {
    fn try_as_object_mut(&mut self) -> Result<&mut JsonMap>;
}

impl JsonTryGetMut for JsonValue {
    fn try_get_mut(&mut self, key: &str) -> Result<&mut JsonValue> {
        self.get_mut(key)
            .ok_or_else(|| Error::JsonKeyNotFound(key.to_string()))
    }
}

impl JsonTryAsObjectMut for JsonValue {
    fn try_as_object_mut(&mut self) -> Result<&mut JsonMap> {
        self.as_object_mut().ok_or(Error::JsonValueIsNotObject)
    }
}

impl JsonTryGetMut for JsonMap {
    fn try_get_mut(&mut self, key: &str) -> Result<&mut JsonValue> {
        self.get_mut(key)
            .ok_or_else(|| Error::JsonKeyNotFound(key.to_string()))
    }
}