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

///|
/// The abstract types used to express `expected` values from the
/// httpwg test suite.
pub enum ExpectedBare {
  ExpInteger(Int64)
  ExpDecimal(Int64, Int)
  ExpString(String)
  ExpToken(String)
  ExpBinary(String)
  ExpBoolean(Bool)
  ExpDate(Int64)
  ExpDisplayString(String)
}

///|
pub struct ExpectedParam {
  key : String
  value : ExpectedBare
}

///|
pub struct ExpectedItem {
  bare : ExpectedBare
  params : Array[ExpectedParam]
}

///|
pub enum ExpectedMember {
  ExpItemMember(ExpectedItem)
  ExpInnerList(Array[ExpectedItem], Array[ExpectedParam])
}

///|
pub enum ExpectedField {
  ExpItemField(ExpectedItem)
  ExpListField(Array[ExpectedMember])
  ExpDictField(Array[(String, ExpectedMember)])
}

///|
pub struct HttpwgCase {
  name : String
  header_type : String
  raw : Array[String]
  must_fail : Bool
  can_fail : Bool
  canonical : Array[String]?
  expected : ExpectedField?
}

///|
/// Marks the start of a fresh text segment.
pub let httpwg_cases : Array[HttpwgCase] = httpwg_cases_part_0 +
  httpwg_cases_part_1 +
  httpwg_cases_part_2 +
  httpwg_cases_part_3 +
  httpwg_cases_part_4 +
  httpwg_cases_part_5 +
  httpwg_cases_part_6 +
  httpwg_cases_part_7 +
  httpwg_cases_part_8 +
  httpwg_cases_part_9 +
  httpwg_cases_part_10 +
  httpwg_cases_part_11 +
  httpwg_cases_part_12 +
  httpwg_cases_part_13 +
  httpwg_cases_part_14 +
  httpwg_cases_part_15 +
  httpwg_cases_part_16 +
  httpwg_cases_part_17 +
  httpwg_cases_part_18 +
  httpwg_cases_part_19 +
  httpwg_cases_part_20 +
  httpwg_cases_part_21 +
  httpwg_cases_part_22 +
  httpwg_cases_part_23 +
  httpwg_cases_part_24 +
  httpwg_cases_part_25 +
  httpwg_cases_part_26 +
  httpwg_cases_part_27 +
  httpwg_cases_part_28 +
  httpwg_cases_part_29 +
  httpwg_cases_part_30 +
  httpwg_cases_part_31 +
  httpwg_cases_part_32 +
  httpwg_cases_part_33 +
  httpwg_cases_part_34 +
  httpwg_cases_part_35 +
  httpwg_cases_part_36 +
  httpwg_cases_part_37 +
  httpwg_cases_part_38 +
  httpwg_cases_part_39 +
  httpwg_cases_part_40 +
  httpwg_cases_part_41 +
  httpwg_cases_part_42 +
  httpwg_cases_part_43 +
  httpwg_cases_part_44 +
  httpwg_cases_part_45 +
  httpwg_cases_part_46 +
  httpwg_cases_part_47 +
  httpwg_cases_part_48 +
  httpwg_cases_part_49 +
  httpwg_cases_part_50 +
  httpwg_cases_part_51 +
  httpwg_cases_part_52 +
  httpwg_cases_part_53 +
  httpwg_cases_part_54 +
  httpwg_cases_part_55 +
  httpwg_cases_part_56 +
  httpwg_cases_part_57 +
  httpwg_cases_part_58 +
  httpwg_cases_part_59 +
  httpwg_cases_part_60 +
  httpwg_cases_part_61 +
  httpwg_cases_part_62 +
  httpwg_cases_part_63 +
  httpwg_cases_part_64 +
  httpwg_cases_part_65 +
  httpwg_cases_part_66 +
  httpwg_cases_part_67 +
  httpwg_cases_part_68 +
  httpwg_cases_part_69 +
  httpwg_cases_part_70 +
  httpwg_cases_part_71 +
  httpwg_cases_part_72 +
  httpwg_cases_part_73 +
  httpwg_cases_part_74 +
  httpwg_cases_part_75 +
  httpwg_cases_part_76 +
  httpwg_cases_part_77 +
  httpwg_cases_part_78 +
  httpwg_cases_part_79

///|
pub let httpwg_case_count : Int = 1591