ng-net 0.1.1-alpha.2

Network library of NextGraph, a decentralized, secure and local-first web 3.0 ecosystem based on Semantic Web and CRDTs
Documentation
use time::{Month,Date};
use std::collections::HashMap;
use lazy_static::lazy_static;

pub struct BSPDetail<'a> {
    pub domain: &'a str,
    // ISO-2 code
    pub country: &'a str,
    // email address of sys admin
    pub sysadmin: &'a str,
    // owned or rented
    pub owned: bool,
    pub since: Date,
    pub has_free: bool,
    pub has_paid: bool,
    pub official: bool,
    pub description: &'a str,
}

lazy_static! {
    pub static ref BSP_DETAILS: HashMap<&'static str, BSPDetail<'static>> = {
        let mut d = HashMap::new();

        d.insert("https://nextgraph.eu", BSPDetail {
            domain: "nextgraph.eu",
            country: "de",
            sysadmin: "team@nextgraph.org",
            owned: false,
            since: Date::from_calendar_date(2024, Month::September,2).unwrap(),
            has_free: true,
            has_paid: false,
            official: true,
            description: "First official Broker Service Provider from NextGraph.org. Based in Europe."
        });

        assert!(d.insert("https://nextgraph.one", BSPDetail {
            domain: "nextgraph.one",
            country: "de",
            sysadmin: "team@nextgraph.org",
            owned: false,
            since: Date::from_calendar_date(2025, Month::April,20).unwrap(),
            has_free: true,
            has_paid: false,
            official: true,
            description: "Second official Broker Service Provider from NextGraph.org. Based in Europe, but that could change."
        }).is_none());

        d
    };
    pub static ref BSP_ORIGINS: Vec<&'static str> = {
        BSP_DETAILS.keys().cloned().collect()
    };
}