// Generated by scripts/import_httpwg_tests.py (version 1.0.0).
// Do not edit by hand.
// Source: httpwg/structured-field-tests @ 1e280c3ed9ffe0ca5fdb1d97219dddc389007677

///| Marks the start of a fresh text segment.

///|
/// Begins a new text segment.
pub let httpwg_cases_part_48 : Array[HttpwgCase] = [
  {
    name: "12 digit, 1 fractional large dec" + "imal",
    header_type: "item",
    raw: ["99999999999.9"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpItemField({ bare: ExpDecimal(999999999999L, 1), params: [] }),
    ),
  },
  {
    name: "13 digit 0, 2 fractional small d" + "ecimal",
    header_type: "item",
    raw: ["00000000000.11"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["0.11"]),
    expected: Some(ExpItemField({ bare: ExpDecimal(11L, 2), params: [] })),
  },
  {
    name: "13 digit, 2 fractional 0 decimal",
    header_type: "item",
    raw: ["11111111111.00"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["11111111111.0"]),
    expected: Some(
      ExpItemField({ bare: ExpDecimal(111111111110L, 1), params: [] }),
    ),
  },
  {
    name: "13 digit, 2 fractional small dec" + "imal",
    header_type: "item",
    raw: ["11111111111.11"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpItemField({ bare: ExpDecimal(1111111111111L, 2), params: [] }),
    ),
  },
  {
    name: "13 digit, 2 fractional large dec" + "imal",
    header_type: "item",
    raw: ["99999999999.99"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpItemField({ bare: ExpDecimal(9999999999999L, 2), params: [] }),
    ),
  },
  {
    name: "14 digit 0, 3 fractional small d" + "ecimal",
    header_type: "item",
    raw: ["00000000000.111"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["0.111"]),
    expected: Some(ExpItemField({ bare: ExpDecimal(111L, 3), params: [] })),
  },
  {
    name: "14 digit, 3 fractional 0 decimal",
    header_type: "item",
    raw: ["11111111111.000"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["11111111111.0"]),
    expected: Some(
      ExpItemField({ bare: ExpDecimal(111111111110L, 1), params: [] }),
    ),
  },
  {
    name: "14 digit, 3 fractional small dec" + "imal",
    header_type: "item",
    raw: ["11111111111.111"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpItemField({ bare: ExpDecimal(11111111111111L, 3), params: [] }),
    ),
  },
  {
    name: "14 digit, 3 fractional large dec" + "imal",
    header_type: "item",
    raw: ["99999999999.999"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpItemField({ bare: ExpDecimal(99999999999999L, 3), params: [] }),
    ),
  },
  {
    name: "13 digit 0, 1 fractional small d" + "ecimal",
    header_type: "item",
    raw: ["000000000000.1"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["0.1"]),
    expected: Some(ExpItemField({ bare: ExpDecimal(1L, 1), params: [] })),
  },
  {
    name: "13 digit, 1 fractional 0 decimal",
    header_type: "item",
    raw: ["111111111111.0"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["111111111111.0"]),
    expected: Some(
      ExpItemField({ bare: ExpDecimal(1111111111110L, 1), params: [] }),
    ),
  },
  {
    name: "13 digit, 1 fractional small dec" + "imal",
    header_type: "item",
    raw: ["111111111111.1"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpItemField({ bare: ExpDecimal(1111111111111L, 1), params: [] }),
    ),
  },
  {
    name: "13 digit, 1 fractional large dec" + "imal",
    header_type: "item",
    raw: ["999999999999.9"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpItemField({ bare: ExpDecimal(9999999999999L, 1), params: [] }),
    ),
  },
  {
    name: "14 digit 0, 2 fractional small d" + "ecimal",
    header_type: "item",
    raw: ["000000000000.11"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["0.11"]),
    expected: Some(ExpItemField({ bare: ExpDecimal(11L, 2), params: [] })),
  },
  {
    name: "14 digit, 2 fractional 0 decimal",
    header_type: "item",
    raw: ["111111111111.00"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["111111111111.0"]),
    expected: Some(
      ExpItemField({ bare: ExpDecimal(1111111111110L, 1), params: [] }),
    ),
  },
  {
    name: "14 digit, 2 fractional small dec" + "imal",
    header_type: "item",
    raw: ["111111111111.11"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpItemField({ bare: ExpDecimal(11111111111111L, 2), params: [] }),
    ),
  },
  {
    name: "14 digit, 2 fractional large dec" + "imal",
    header_type: "item",
    raw: ["999999999999.99"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpItemField({ bare: ExpDecimal(99999999999999L, 2), params: [] }),
    ),
  },
  {
    name: "15 digit 0, 3 fractional small d" + "ecimal",
    header_type: "item",
    raw: ["000000000000.111"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["0.111"]),
    expected: Some(ExpItemField({ bare: ExpDecimal(111L, 3), params: [] })),
  },
  {
    name: "15 digit, 3 fractional 0 decimal",
    header_type: "item",
    raw: ["111111111111.000"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["111111111111.0"]),
    expected: Some(
      ExpItemField({ bare: ExpDecimal(1111111111110L, 1), params: [] }),
    ),
  },
  {
    name: "15 digit, 3 fractional small dec" + "imal",
    header_type: "item",
    raw: ["111111111111.111"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpItemField({ bare: ExpDecimal(111111111111111L, 3), params: [] }),
    ),
  },
]

///|
/// Begins a new text segment.
pub let httpwg_cases_part_49 : Array[HttpwgCase] = [
  {
    name: "15 digit, 3 fractional large dec" + "imal",
    header_type: "item",
    raw: ["999999999999.999"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpItemField({ bare: ExpDecimal(999999999999999L, 3), params: [] }),
    ),
  },
  {
    name: "too many digit 0 decimal",
    header_type: "item",
    raw: ["000000000000000.0"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "too many fractional digits 0 dec" + "imal",
    header_type: "item",
    raw: ["000000000000.0000"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "too many digit 9 decimal",
    header_type: "item",
    raw: ["999999999999999.9"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "too many fractional digits 9 dec" + "imal",
    header_type: "item",
    raw: ["999999999999.9999"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "basic integer",
    header_type: "item",
    raw: ["42"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpInteger(42L), params: [] })),
  },
  {
    name: "zero integer",
    header_type: "item",
    raw: ["0"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpInteger(0L), params: [] })),
  },
  {
    name: "negative zero",
    header_type: "item",
    raw: ["-0"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["0"]),
    expected: Some(ExpItemField({ bare: ExpInteger(0L), params: [] })),
  },
  {
    name: "double negative zero",
    header_type: "item",
    raw: ["--0"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "negative integer",
    header_type: "item",
    raw: ["-42"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpInteger(-42L), params: [] })),
  },
  {
    name: "leading 0 integer",
    header_type: "item",
    raw: ["042"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["42"]),
    expected: Some(ExpItemField({ bare: ExpInteger(42L), params: [] })),
  },
  {
    name: "leading 0 negative integer",
    header_type: "item",
    raw: ["-042"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["-42"]),
    expected: Some(ExpItemField({ bare: ExpInteger(-42L), params: [] })),
  },
  {
    name: "leading 0 zero",
    header_type: "item",
    raw: ["00"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["0"]),
    expected: Some(ExpItemField({ bare: ExpInteger(0L), params: [] })),
  },
  {
    name: "comma",
    header_type: "item",
    raw: ["2,3"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "negative non-DIGIT first charact" + "er",
    header_type: "item",
    raw: ["-a23"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "sign out of place",
    header_type: "item",
    raw: ["4-2"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "whitespace after sign",
    header_type: "item",
    raw: ["- 42"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "long integer",
    header_type: "item",
    raw: ["123456789012345"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpItemField({ bare: ExpInteger(123456789012345L), params: [] }),
    ),
  },
  {
    name: "long integer followed by comma",
    header_type: "list",
    raw: ["123456789012345, 1"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpListField([
        ExpItemMember({ bare: ExpInteger(123456789012345L), params: [] }),
        ExpItemMember({ bare: ExpInteger(1L), params: [] }),
      ]),
    ),
  },
  {
    name: "long negative integer",
    header_type: "item",
    raw: ["-123456789012345"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpItemField({ bare: ExpInteger(-123456789012345L), params: [] }),
    ),
  },
]

///|
/// Begins a new text segment.
pub let httpwg_cases_part_50 : Array[HttpwgCase] = [
  {
    name: "too long integer",
    header_type: "item",
    raw: ["1234567890123456"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "too long integer followed by com" + "ma",
    header_type: "list",
    raw: ["1234567890123456, 1"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "negative too long integer",
    header_type: "item",
    raw: ["-1234567890123456"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "simple decimal",
    header_type: "item",
    raw: ["1.23"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpDecimal(123L, 2), params: [] })),
  },
  {
    name: "negative decimal",
    header_type: "item",
    raw: ["-1.23"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpDecimal(-123L, 2), params: [] })),
  },
  {
    name: "decimal, whitespace after decima" + "l",
    header_type: "item",
    raw: ["1. 23"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "decimal, whitespace before decim" + "al",
    header_type: "item",
    raw: ["1 .23"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "negative decimal, whitespace aft" + "er sign",
    header_type: "item",
    raw: ["- 1.23"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "decimal, followed by comma",
    header_type: "list",
    raw: ["123456789012.123, 1.1"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpListField([
        ExpItemMember({ bare: ExpDecimal(123456789012123L, 3), params: [] }),
        ExpItemMember({ bare: ExpDecimal(11L, 1), params: [] }),
      ]),
    ),
  },
  {
    name: "tricky precision decimal",
    header_type: "item",
    raw: ["123456789012.1"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpItemField({ bare: ExpDecimal(1234567890121L, 1), params: [] }),
    ),
  },
  {
    name: "double decimal decimal",
    header_type: "item",
    raw: ["1.5.4"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "adjacent double decimal decimal",
    header_type: "item",
    raw: ["1..4"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "decimal with three fractional di" + "gits",
    header_type: "item",
    raw: ["1.123"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpDecimal(1123L, 3), params: [] })),
  },
  {
    name: "negative decimal with three frac" + "tional digits",
    header_type: "item",
    raw: ["-1.123"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpDecimal(-1123L, 3), params: [] })),
  },
  {
    name: "decimal with zero fractional dig" + "its",
    header_type: "item",
    raw: ["1."],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "decimal with four fractional dig" + "its",
    header_type: "item",
    raw: ["1.1234"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "negative decimal with four fract" + "ional digits",
    header_type: "item",
    raw: ["-1.1234"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "decimal with thirteen integer di" + "gits",
    header_type: "item",
    raw: ["1234567890123.0"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "negative decimal with thirteen i" + "nteger digits",
    header_type: "item",
    raw: ["-1234567890123.0"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "decimal with 1 significant digit" + " and 1 insignificant digit",
    header_type: "item",
    raw: ["1.20"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["1.2"]),
    expected: Some(ExpItemField({ bare: ExpDecimal(12L, 1), params: [] })),
  },
]

///|
/// Begins a new text segment.
pub let httpwg_cases_part_51 : Array[HttpwgCase] = [
  {
    name: "decimal with 1 significant digit" + " and 2 insignificant digits",
    header_type: "item",
    raw: ["1.200"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["1.2"]),
    expected: Some(ExpItemField({ bare: ExpDecimal(12L, 1), params: [] })),
  },
  {
    name: "decimal with 2 significant digit" + "s and 1 insignificant digit",
    header_type: "item",
    raw: ["1.230"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["1.23"]),
    expected: Some(ExpItemField({ bare: ExpDecimal(123L, 2), params: [] })),
  },
  {
    name: "basic parameterised dict",
    header_type: "dictionary",
    raw: ["abc=123;a=1;b=2, def=456, ghi=78" + "9;q=9;r=\"+w\""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpDictField([
        (
          "abc",
          ExpItemMember({
            bare: ExpInteger(123L),
            params: [
              { key: "a", value: ExpInteger(1L) },
              { key: "b", value: ExpInteger(2L) },
            ],
          }),
        ),
        ("def", ExpItemMember({ bare: ExpInteger(456L), params: [] })),
        (
          "ghi",
          ExpItemMember({
            bare: ExpInteger(789L),
            params: [
              { key: "q", value: ExpInteger(9L) },
              { key: "r", value: ExpString("+w") },
            ],
          }),
        ),
      ]),
    ),
  },
  {
    name: "single item parameterised dict",
    header_type: "dictionary",
    raw: ["a=b; q=1.0"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["a=b;q=1.0"]),
    expected: Some(
      ExpDictField([
        (
          "a",
          ExpItemMember({
            bare: ExpToken("b"),
            params: [{ key: "q", value: ExpDecimal(10L, 1) }],
          }),
        ),
      ]),
    ),
  },
  {
    name: "list item parameterised dictiona" + "ry",
    header_type: "dictionary",
    raw: ["a=(1 2); q=1.0"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["a=(1 2);q=1.0"]),
    expected: Some(
      ExpDictField([
        (
          "a",
          ExpInnerList(
            [
              { bare: ExpInteger(1L), params: [] },
              { bare: ExpInteger(2L), params: [] },
            ],
            [{ key: "q", value: ExpDecimal(10L, 1) }],
          ),
        ),
      ]),
    ),
  },
  {
    name: "missing parameter value paramete" + "rised dict",
    header_type: "dictionary",
    raw: ["a=3;c;d=5"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpDictField([
        (
          "a",
          ExpItemMember({
            bare: ExpInteger(3L),
            params: [
              { key: "c", value: ExpBoolean(true) },
              { key: "d", value: ExpInteger(5L) },
            ],
          }),
        ),
      ]),
    ),
  },
  {
    name: "terminal missing parameter value" + " parameterised dict",
    header_type: "dictionary",
    raw: ["a=3;c=5;d"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpDictField([
        (
          "a",
          ExpItemMember({
            bare: ExpInteger(3L),
            params: [
              { key: "c", value: ExpInteger(5L) },
              { key: "d", value: ExpBoolean(true) },
            ],
          }),
        ),
      ]),
    ),
  },
  {
    name: "no whitespace parameterised dict",
    header_type: "dictionary",
    raw: ["a=b;c=1,d=e;f=2"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["a=b;c=1, d=e;f=2"]),
    expected: Some(
      ExpDictField([
        (
          "a",
          ExpItemMember({
            bare: ExpToken("b"),
            params: [{ key: "c", value: ExpInteger(1L) }],
          }),
        ),
        (
          "d",
          ExpItemMember({
            bare: ExpToken("e"),
            params: [{ key: "f", value: ExpInteger(2L) }],
          }),
        ),
      ]),
    ),
  },
  {
    name: "whitespace before = parameterise" + "d dict",
    header_type: "dictionary",
    raw: ["a=b;q =0.5"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "whitespace after = parameterised" + " dict",
    header_type: "dictionary",
    raw: ["a=b;q= 0.5"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "whitespace before ; parameterise" + "d dict",
    header_type: "dictionary",
    raw: ["a=b ;q=0.5"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "whitespace after ; parameterised" + " dict",
    header_type: "dictionary",
    raw: ["a=b; q=0.5"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["a=b;q=0.5"]),
    expected: Some(
      ExpDictField([
        (
          "a",
          ExpItemMember({
            bare: ExpToken("b"),
            params: [{ key: "q", value: ExpDecimal(5L, 1) }],
          }),
        ),
      ]),
    ),
  },
  {
    name: "extra whitespace parameterised d" + "ict",
    header_type: "dictionary",
    raw: ["a=b;  c=1  ,  d=e; f=2; g=3"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["a=b;c=1, d=e;f=2;g=3"]),
    expected: Some(
      ExpDictField([
        (
          "a",
          ExpItemMember({
            bare: ExpToken("b"),
            params: [{ key: "c", value: ExpInteger(1L) }],
          }),
        ),
        (
          "d",
          ExpItemMember({
            bare: ExpToken("e"),
            params: [
              { key: "f", value: ExpInteger(2L) },
              { key: "g", value: ExpInteger(3L) },
            ],
          }),
        ),
      ]),
    ),
  },
  {
    name: "two lines parameterised list",
    header_type: "dictionary",
    raw: ["a=b;c=1", "d=e;f=2"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["a=b;c=1, d=e;f=2"]),
    expected: Some(
      ExpDictField([
        (
          "a",
          ExpItemMember({
            bare: ExpToken("b"),
            params: [{ key: "c", value: ExpInteger(1L) }],
          }),
        ),
        (
          "d",
          ExpItemMember({
            bare: ExpToken("e"),
            params: [{ key: "f", value: ExpInteger(2L) }],
          }),
        ),
      ]),
    ),
  },
  {
    name: "trailing comma parameterised lis" + "t",
    header_type: "dictionary",
    raw: ["a=b; q=1.0,"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "empty item parameterised list",
    header_type: "dictionary",
    raw: ["a=b; q=1.0,,c=d"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "basic parameterised list",
    header_type: "list",
    raw: ["abc_123;a=1;b=2; cdef_456, ghi;q" + "=9;r=\"+w\""],
    must_fail: false,
    can_fail: false,
    canonical: Some(["abc_123;a=1;b=2;cdef_456, ghi;q=" + "9;r=\"+w\""]),
    expected: Some(
      ExpListField([
        ExpItemMember({
          bare: ExpToken("abc_123"),
          params: [
            { key: "a", value: ExpInteger(1L) },
            { key: "b", value: ExpInteger(2L) },
            { key: "cdef_456", value: ExpBoolean(true) },
          ],
        }),
        ExpItemMember({
          bare: ExpToken("ghi"),
          params: [
            { key: "q", value: ExpInteger(9L) },
            { key: "r", value: ExpString("+w") },
          ],
        }),
      ]),
    ),
  },
  {
    name: "single item parameterised list",
    header_type: "list",
    raw: ["text/html;q=1.0"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpListField([
        ExpItemMember({
          bare: ExpToken("text/html"),
          params: [{ key: "q", value: ExpDecimal(10L, 1) }],
        }),
      ]),
    ),
  },
  {
    name: "missing parameter value paramete" + "rised list",
    header_type: "list",
    raw: ["text/html;a;q=1.0"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpListField([
        ExpItemMember({
          bare: ExpToken("text/html"),
          params: [
            { key: "a", value: ExpBoolean(true) },
            { key: "q", value: ExpDecimal(10L, 1) },
          ],
        }),
      ]),
    ),
  },
  {
    name: "missing terminal parameter value" + " parameterised list",
    header_type: "list",
    raw: ["text/html;q=1.0;a"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpListField([
        ExpItemMember({
          bare: ExpToken("text/html"),
          params: [
            { key: "q", value: ExpDecimal(10L, 1) },
            { key: "a", value: ExpBoolean(true) },
          ],
        }),
      ]),
    ),
  },
]

///|
/// Begins a new text segment.
pub let httpwg_cases_part_52 : Array[HttpwgCase] = [
  {
    name: "no whitespace parameterised list",
    header_type: "list",
    raw: ["text/html,text/plain;q=0.5"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["text/html, text/plain;q=0.5"]),
    expected: Some(
      ExpListField([
        ExpItemMember({ bare: ExpToken("text/html"), params: [] }),
        ExpItemMember({
          bare: ExpToken("text/plain"),
          params: [{ key: "q", value: ExpDecimal(5L, 1) }],
        }),
      ]),
    ),
  },
  {
    name: "whitespace before = parameterise" + "d list",
    header_type: "list",
    raw: ["text/html, text/plain;q =0.5"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "whitespace after = parameterised" + " list",
    header_type: "list",
    raw: ["text/html, text/plain;q= 0.5"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "whitespace before ; parameterise" + "d list",
    header_type: "list",
    raw: ["text/html, text/plain ;q=0.5"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "whitespace after ; parameterised" + " list",
    header_type: "list",
    raw: ["text/html, text/plain; q=0.5"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["text/html, text/plain;q=0.5"]),
    expected: Some(
      ExpListField([
        ExpItemMember({ bare: ExpToken("text/html"), params: [] }),
        ExpItemMember({
          bare: ExpToken("text/plain"),
          params: [{ key: "q", value: ExpDecimal(5L, 1) }],
        }),
      ]),
    ),
  },
  {
    name: "extra whitespace parameterised l" + "ist",
    header_type: "list",
    raw: ["text/html  ,  text/plain;  q=0.5" + ";  charset=utf-8"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["text/html, text/plain;q=0.5;char" + "set=utf-8"]),
    expected: Some(
      ExpListField([
        ExpItemMember({ bare: ExpToken("text/html"), params: [] }),
        ExpItemMember({
          bare: ExpToken("text/plain"),
          params: [
            { key: "q", value: ExpDecimal(5L, 1) },
            { key: "charset", value: ExpToken("utf-8") },
          ],
        }),
      ]),
    ),
  },
  {
    name: "two lines parameterised list",
    header_type: "list",
    raw: ["text/html", "text/plain;q=0.5"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["text/html, text/plain;q=0.5"]),
    expected: Some(
      ExpListField([
        ExpItemMember({ bare: ExpToken("text/html"), params: [] }),
        ExpItemMember({
          bare: ExpToken("text/plain"),
          params: [{ key: "q", value: ExpDecimal(5L, 1) }],
        }),
      ]),
    ),
  },
  {
    name: "trailing comma parameterised lis" + "t",
    header_type: "list",
    raw: ["text/html,text/plain;q=0.5,"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "empty item parameterised list",
    header_type: "list",
    raw: ["text/html,,text/plain;q=0.5,"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "duplicate parameter with differe" + "nt positions",
    header_type: "list",
    raw: ["a;b=1;c=2;b=3"],
    must_fail: false,
    can_fail: false,
    canonical: Some(["a;b=3;c=2"]),
    expected: Some(
      ExpListField([
        ExpItemMember({
          bare: ExpToken("a"),
          params: [
            { key: "b", value: ExpInteger(3L) },
            { key: "c", value: ExpInteger(2L) },
          ],
        }),
      ]),
    ),
  },
  {
    name: "parameter ordering",
    header_type: "list",
    raw: ["a;m;z;t"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpListField([
        ExpItemMember({
          bare: ExpToken("a"),
          params: [
            { key: "m", value: ExpBoolean(true) },
            { key: "z", value: ExpBoolean(true) },
            { key: "t", value: ExpBoolean(true) },
          ],
        }),
      ]),
    ),
  },
  {
    name: "trailing semicolon in parameters",
    header_type: "list",
    raw: ["a;b=1;"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "trailing semicolon and space in " + "parameters",
    header_type: "list",
    raw: ["a;b=1; "],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "empty parameter key",
    header_type: "list",
    raw: ["a;=1"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "parameter prefix only",
    header_type: "list",
    raw: ["a;"],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "parameter prefix and space only",
    header_type: "list",
    raw: ["a; "],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "parameterised inner list",
    header_type: "list",
    raw: ["(abc_123);a=1;b=2, cdef_456"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpListField([
        ExpInnerList([{ bare: ExpToken("abc_123"), params: [] }], [
          { key: "a", value: ExpInteger(1L) },
          { key: "b", value: ExpInteger(2L) },
        ]),
        ExpItemMember({ bare: ExpToken("cdef_456"), params: [] }),
      ]),
    ),
  },
  {
    name: "parameterised inner list item",
    header_type: "list",
    raw: ["(abc_123;a=1;b=2;cdef_456)"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpListField([
        ExpInnerList(
          [
            {
              bare: ExpToken("abc_123"),
              params: [
                { key: "a", value: ExpInteger(1L) },
                { key: "b", value: ExpInteger(2L) },
                { key: "cdef_456", value: ExpBoolean(true) },
              ],
            },
          ],
          [],
        ),
      ]),
    ),
  },
  {
    name: "parameterised inner list with pa" + "rameterised item",
    header_type: "list",
    raw: ["(abc_123;a=1;b=2);cdef_456"],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(
      ExpListField([
        ExpInnerList(
          [
            {
              bare: ExpToken("abc_123"),
              params: [
                { key: "a", value: ExpInteger(1L) },
                { key: "b", value: ExpInteger(2L) },
              ],
            },
          ],
          [{ key: "cdef_456", value: ExpBoolean(true) }],
        ),
      ]),
    ),
  },
  {
    name: "0x00 in string",
    header_type: "item",
    raw: ["\" \u0000 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
]

///|
/// Begins a new text segment.
pub let httpwg_cases_part_53 : Array[HttpwgCase] = [
  {
    name: "0x01 in string",
    header_type: "item",
    raw: ["\" \u0001 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x02 in string",
    header_type: "item",
    raw: ["\" \u0002 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x03 in string",
    header_type: "item",
    raw: ["\" \u0003 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x04 in string",
    header_type: "item",
    raw: ["\" \u0004 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x05 in string",
    header_type: "item",
    raw: ["\" \u0005 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x06 in string",
    header_type: "item",
    raw: ["\" \u0006 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x07 in string",
    header_type: "item",
    raw: ["\" \u0007 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x08 in string",
    header_type: "item",
    raw: ["\" \u0008 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x09 in string",
    header_type: "item",
    raw: ["\" \t \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x0a in string",
    header_type: "item",
    raw: ["\" \n \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x0b in string",
    header_type: "item",
    raw: ["\" \u000b \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x0c in string",
    header_type: "item",
    raw: ["\" \u000c \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x0d in string",
    header_type: "item",
    raw: ["\" \r \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x0e in string",
    header_type: "item",
    raw: ["\" \u000e \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x0f in string",
    header_type: "item",
    raw: ["\" \u000f \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x10 in string",
    header_type: "item",
    raw: ["\" \u0010 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x11 in string",
    header_type: "item",
    raw: ["\" \u0011 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x12 in string",
    header_type: "item",
    raw: ["\" \u0012 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x13 in string",
    header_type: "item",
    raw: ["\" \u0013 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x14 in string",
    header_type: "item",
    raw: ["\" \u0014 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
]

///|
/// Begins a new text segment.
pub let httpwg_cases_part_54 : Array[HttpwgCase] = [
  {
    name: "0x15 in string",
    header_type: "item",
    raw: ["\" \u0015 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x16 in string",
    header_type: "item",
    raw: ["\" \u0016 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x17 in string",
    header_type: "item",
    raw: ["\" \u0017 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x18 in string",
    header_type: "item",
    raw: ["\" \u0018 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x19 in string",
    header_type: "item",
    raw: ["\" \u0019 \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x1a in string",
    header_type: "item",
    raw: ["\" \u001a \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x1b in string",
    header_type: "item",
    raw: ["\" \u001b \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x1c in string",
    header_type: "item",
    raw: ["\" \u001c \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x1d in string",
    header_type: "item",
    raw: ["\" \u001d \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x1e in string",
    header_type: "item",
    raw: ["\" \u001e \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x1f in string",
    header_type: "item",
    raw: ["\" \u001f \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x20 in string",
    header_type: "item",
    raw: ["\"   \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString("   "), params: [] })),
  },
  {
    name: "0x21 in string",
    header_type: "item",
    raw: ["\" ! \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" ! "), params: [] })),
  },
  {
    name: "0x22 in string",
    header_type: "item",
    raw: ["\" \" \""],
    must_fail: true,
    can_fail: false,
    canonical: None,
    expected: None,
  },
  {
    name: "0x23 in string",
    header_type: "item",
    raw: ["\" # \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" # "), params: [] })),
  },
  {
    name: "0x24 in string",
    header_type: "item",
    raw: ["\" $ \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" $ "), params: [] })),
  },
  {
    name: "0x25 in string",
    header_type: "item",
    raw: ["\" % \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" % "), params: [] })),
  },
  {
    name: "0x26 in string",
    header_type: "item",
    raw: ["\" & \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" & "), params: [] })),
  },
  {
    name: "0x27 in string",
    header_type: "item",
    raw: ["\" ' \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" ' "), params: [] })),
  },
  {
    name: "0x28 in string",
    header_type: "item",
    raw: ["\" ( \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" ( "), params: [] })),
  },
]

///|
/// Begins a new text segment.
pub let httpwg_cases_part_55 : Array[HttpwgCase] = [
  {
    name: "0x29 in string",
    header_type: "item",
    raw: ["\" ) \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" ) "), params: [] })),
  },
  {
    name: "0x2a in string",
    header_type: "item",
    raw: ["\" * \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" * "), params: [] })),
  },
  {
    name: "0x2b in string",
    header_type: "item",
    raw: ["\" + \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" + "), params: [] })),
  },
  {
    name: "0x2c in string",
    header_type: "item",
    raw: ["\" , \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" , "), params: [] })),
  },
  {
    name: "0x2d in string",
    header_type: "item",
    raw: ["\" - \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" - "), params: [] })),
  },
  {
    name: "0x2e in string",
    header_type: "item",
    raw: ["\" . \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" . "), params: [] })),
  },
  {
    name: "0x2f in string",
    header_type: "item",
    raw: ["\" / \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" / "), params: [] })),
  },
  {
    name: "0x30 in string",
    header_type: "item",
    raw: ["\" 0 \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" 0 "), params: [] })),
  },
  {
    name: "0x31 in string",
    header_type: "item",
    raw: ["\" 1 \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" 1 "), params: [] })),
  },
  {
    name: "0x32 in string",
    header_type: "item",
    raw: ["\" 2 \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" 2 "), params: [] })),
  },
  {
    name: "0x33 in string",
    header_type: "item",
    raw: ["\" 3 \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" 3 "), params: [] })),
  },
  {
    name: "0x34 in string",
    header_type: "item",
    raw: ["\" 4 \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" 4 "), params: [] })),
  },
  {
    name: "0x35 in string",
    header_type: "item",
    raw: ["\" 5 \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" 5 "), params: [] })),
  },
  {
    name: "0x36 in string",
    header_type: "item",
    raw: ["\" 6 \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" 6 "), params: [] })),
  },
  {
    name: "0x37 in string",
    header_type: "item",
    raw: ["\" 7 \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" 7 "), params: [] })),
  },
  {
    name: "0x38 in string",
    header_type: "item",
    raw: ["\" 8 \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" 8 "), params: [] })),
  },
  {
    name: "0x39 in string",
    header_type: "item",
    raw: ["\" 9 \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" 9 "), params: [] })),
  },
  {
    name: "0x3a in string",
    header_type: "item",
    raw: ["\" : \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" : "), params: [] })),
  },
  {
    name: "0x3b in string",
    header_type: "item",
    raw: ["\" ; \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" ; "), params: [] })),
  },
  {
    name: "0x3c in string",
    header_type: "item",
    raw: ["\" < \""],
    must_fail: false,
    can_fail: false,
    canonical: None,
    expected: Some(ExpItemField({ bare: ExpString(" < "), params: [] })),
  },
]