dfx-core 0.3.0

dfx core library
Documentation
use url::Url;

pub struct ExtensionJsonUrl(Url);

impl ExtensionJsonUrl {
    pub fn new(url: Url) -> Self {
        ExtensionJsonUrl(url)
    }

    pub fn registered(name: &str) -> Result<Self, url::ParseError> {
        let s = format!(
            "https://raw.githubusercontent.com/dfinity/dfx-extensions/main/extensions/{name}/extension.json"
        );
        Url::parse(&s).map(ExtensionJsonUrl)
    }

    pub fn to_dependencies_json(&self) -> Result<Url, url::ParseError> {
        self.as_url().join("dependencies.json")
    }

    pub fn as_url(&self) -> &Url {
        &self.0
    }
}