rfc2396 1.1.0

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

test_cases! {
    component::opaque_part: {
        case_001: "!;VkBA%47E",
        case_002: "!bKqG+e",
        case_003: "!mm!",
        case_004: "$YKlH$W~xE",
        case_005: "%59;2CY5t",
        case_006: "&",
        case_007: ")fGb",
        case_008: "+CkYz=u",
        case_009: "+Q$Lv.c%50",
        case_010: "-AKuI3",
        case_011: "0!UAu5",
        case_012: "0'EL.ud$?",
        case_013: "0-",
        case_014: "09DDf)Nd",
        case_015: "0l%31029.1-3",
        case_016: "258G3*4j",
        case_017: "2EIitYj.",
        case_018: "5?",
        case_019: "5brK",
        case_020: "6",
        case_021: "67.~7zt(5",
        case_022: "7qaZ0",
        case_023: "8B9/?",
        case_024: ";FLM+P",
        case_025: "=",
        case_026: "=rJY",
        case_027: "?G2q",
        case_028: "@H;,J",
        case_029: "@VVC4ue/v",
        case_030: "AxgXr$*",
        case_031: "BF~zCFaLQ",
        case_032: "CgB",
        case_033: "Davqg8e",
        case_034: "E6",
        case_035: "E6EnZ",
        case_036: "F=bqE",
        case_037: "G4='3",
        case_038: "Gq7",
        case_039: "Hw",
        case_040: "I",
        case_041: "L7q/.LkB",
        case_042: "LE",
        case_043: "MeYg2Ne~",
        case_044: "N)(_Zoc&!",
        case_045: "O",
        case_046: "O,g",
        case_047: "OfD)N&b:q:",
        case_048: "P=",
        case_049: "P_GC",
        case_050: "Q0_",
        case_051: "R-u",
        case_052: "RYY+xK??p",
        case_053: "Ra",
        case_054: "Sm-'?b1!sD",
        case_055: "Su:.Esm",
        case_056: "S~ODnNY",
        case_057: "T;Au-v_O",
        case_058: "Ts&=.'0(i",
        case_059: "U0ec",
        case_060: "U65",
        case_061: "Wqt0",
        case_062: "Wru0,(rs,",
        case_063: "Wt&8gWYyTv",
        case_064: "XML",
        case_065: "Xsp=vK-)Or",
        case_066: "YLfbCWFt=W",
        case_067: "YMr9y@Dza",
        case_068: "YRL9Q(d",
        case_069: "Yd.",
        case_070: "Z3,!VKP",
        case_071: "_",
        case_072: "aanF",
        case_073: "ce'X;;pz0",
        case_074: "d?(-2G",
        case_075: "de",
        case_076: "exc-*",
        case_077: "gAZ%26Kj",
        case_078: "gG1yO",
        case_079: "i=G6wM",
        case_080: "jG:1K5R?O",
        case_081: "jnl~zF8iT:",
        case_082: "jvVpyEg",
        case_083: "kG_",
        case_084: "l",
        case_085: "l?hynxmw",
        case_086: "m",
        case_087: "mZ",
        case_088: "o",
        case_089: "oDc~0D*A",
        case_090: "r9s",
        case_091: "rM:5=D",
        case_092: "s4S+Yc",
        case_093: "sJ:I",
        case_094: "sNiiucSCSx",
        case_095: "u0T7+_",
        case_096: "vm",
        case_097: "vrf=7",
        case_098: "z=GDv",
        case_099: "~n;yew"
    }
}