rfc2396 1.1.0

A library for validating strings as RFC2396-compliant URIs
Documentation
use anyhow::Context;

test_cases! {
    component::host: {
        case_001: "0.0.0.0",
        case_002: "10.0.0.0",
        case_003: "10.255.255.255",
        case_004: "127.255.255.255",
        case_005: "128.0.0.0",
        case_006: "169.254.0.0",
        case_007: "172.16.0.0",
        case_008: "172.16.254.1",
        case_009: "172.31.255.255",
        case_010: "191.255.255.255",
        case_011: "192.0.0.0",
        case_012: "192.0.2.0",
        case_013: "192.0.2.1",
        case_014: "192.0.2.255",
        case_015: "192.168.0.0",
        case_016: "192.168.0.255",
        case_017: "192.168.1.15",
        case_018: "223.255.255.255",
        case_019: "224.0.0.0",
        case_020: "239.255.255.255",
        case_021: "255.255.255.0",
        case_022: "255.255.255.255",
        case_023: "BKnDM1bXl",
        case_024: "BM6Yq0SXcY",
        case_025: "BrFc3sbPeM",
        case_026: "D0WSqrU.Kb",
        case_027: "F9.z8sRmGV",
        case_028: "FQwkb8Sr6B",
        case_029: "G87obXy85z",
        case_030: "GHS8mDeAG8",
        case_031: "GiYnHWOMlS",
        case_032: "GyadR3gXg",
        case_033: "H8wnbD3fUS",
        case_034: "HS4t4KuS9z",
        case_035: "HYatdIlWJ",
        case_036: "Hj7SB6q4Ix",
        case_037: "IZIf.lm-ac",
        case_038: "IqEveR1Jh4",
        case_039: "JBYwl4tpYc",
        case_040: "K8ZS.a.hLG",
        case_041: "KOhoKl8cOQ",
        case_042: "KaOA.XpeW",
        case_043: "LEwfBPqk1F",
        case_044: "LHFG77jW1z",
        case_045: "LM-a2hlEFT",
        case_046: "LM2vLTzAin",
        case_047: "LTyhGGmLY5",
        case_048: "MWmPId3rgv",
        case_049: "MwSoMTbGcw",
        case_050: "NSeqklaJo0",
        case_051: "OwSKmCRYfA",
        case_052: "P-L.f8sgH",
        case_053: "P6lDnkv7WB",
        case_054: "P7CUFmha3E",
        case_055: "PBeGgNJRUn",
        case_056: "QF.EDLrWFm",
        case_057: "QMaRp1bDP8",
        case_058: "RHtrssIAOR",
        case_059: "RTBXogPj1p",
        case_060: "RcN8wE3zVa",
        case_061: "S5Vh0.BQQK",
        case_062: "SCMhQ9zdtg",
        case_063: "TAb6T0HeQ",
        case_064: "TFoQb2WN9D",
        case_065: "V6TFudrSC.",
        case_066: "VReQrYocXC",
        case_067: "VXdvmbDM2",
        case_068: "VtHKfYbswe",
        case_069: "WDt32Fuo.L",
        case_070: "WOHmximCgY",
        case_071: "X92d5DQf1S",
        case_072: "XZ4Os1Bn9d",
        case_073: "XdpgG5hL",
        case_074: "YH8aENQ3oR",
        case_075: "ZOxUTXDOK",
        case_076: "aG.hAgcUML",
        case_077: "acU80oxVIc",
        case_078: "aqz2pfk.zY",
        case_079: "bPIt-41BZV",
        case_080: "c965qmR9O",
        case_081: "cL-d5OF6SX",
        case_082: "cz75dSJdn",
        case_083: "eNfcSlfL1D",
        case_084: "ehMADtdmf",
        case_085: "f0-1a3x9m",
        case_086: "fqHi9o-QhX",
        case_087: "gYokmXiCpb",
        case_088: "gZVn1kSqmr",
        case_089: "gxugnCqQBn",
        case_090: "i.z8TMDA22",
        case_091: "idlFjZJ7r6",
        case_092: "jY-sPi7vnb",
        case_093: "jYhn9MI1h",
        case_094: "lXM5JvUEWU",
        case_095: "lm4-DhFDR",
        case_096: "mHVdNsml4y",
        case_097: "moAlL21kkX",
        case_098: "n49oAgyFvV",
        case_099: "o7X3c9xzh",
        case_100: "oeeYK45Dc",
        case_101: "orMXXl9BMN",
        case_102: "pd8mGYFwn",
        case_103: "piSmp8PzZ",
        case_104: "qD5kgqiE86",
        case_105: "rNNXbA5jP",
        case_106: "sc-t9pCFx",
        case_107: "t66IezdWna",
        case_108: "tKMH-W4fYq",
        case_109: "tfMGQf3IGP",
        case_110: "u2STWi6BBK",
        case_111: "uDJh2JoBXO",
        case_112: "uDY.LUNJca",
        case_113: "uS.tG2245a",
        case_114: "vmA.gyH5zA",
        case_115: "vxOKt1PC0D",
        case_116: "w2zxVJnI7c",
        case_117: "wFXH2tDBbA",
        case_118: "x1AJbfk1aE",
        case_119: "yG2ck1tSNb",
        case_120: "z.VIqFKDu",
        case_121: "zJ7ADsXbW9",
        case_122: "zcuiEJr8Hi"
    }
}