pub(crate) fn tag(value: u64) -> Option<&'static str> {
Some(match value {
0x1 => "DW_TAG_array_type",
0x2 => "DW_TAG_class_type",
0x3 => "DW_TAG_entry_point",
0x4 => "DW_TAG_enumeration_type",
0x5 => "DW_TAG_formal_parameter",
0x8 => "DW_TAG_imported_declaration",
0xa => "DW_TAG_label",
0xb => "DW_TAG_lexical_block",
0xd => "DW_TAG_member",
0xf => "DW_TAG_pointer_type",
0x10 => "DW_TAG_reference_type",
0x11 => "DW_TAG_compile_unit",
0x12 => "DW_TAG_string_type",
0x13 => "DW_TAG_structure_type",
0x15 => "DW_TAG_subroutine_type",
0x16 => "DW_TAG_typedef",
0x17 => "DW_TAG_union_type",
0x18 => "DW_TAG_unspecified_parameters",
0x19 => "DW_TAG_variant",
0x1a => "DW_TAG_common_block",
0x1b => "DW_TAG_common_inclusion",
0x1c => "DW_TAG_inheritance",
0x1d => "DW_TAG_inlined_subroutine",
0x1e => "DW_TAG_module",
0x1f => "DW_TAG_ptr_to_member_type",
0x20 => "DW_TAG_set_type",
0x21 => "DW_TAG_subrange_type",
0x22 => "DW_TAG_with_stmt",
0x23 => "DW_TAG_access_declaration",
0x24 => "DW_TAG_base_type",
0x25 => "DW_TAG_catch_block",
0x26 => "DW_TAG_const_type",
0x27 => "DW_TAG_constant",
0x28 => "DW_TAG_enumerator",
0x29 => "DW_TAG_file_type",
0x2a => "DW_TAG_friend",
0x2b => "DW_TAG_namelist",
0x2c => "DW_TAG_namelist_item",
0x2d => "DW_TAG_packed_type",
0x2e => "DW_TAG_subprogram",
0x2f => "DW_TAG_template_type_parameter",
0x30 => "DW_TAG_template_value_parameter",
0x31 => "DW_TAG_thrown_type",
0x32 => "DW_TAG_try_block",
0x33 => "DW_TAG_variant_part",
0x34 => "DW_TAG_variable",
0x35 => "DW_TAG_volatile_type",
0x36 => "DW_TAG_dwarf_procedure",
0x37 => "DW_TAG_restrict_type",
0x38 => "DW_TAG_interface_type",
0x39 => "DW_TAG_namespace",
0x3a => "DW_TAG_imported_module",
0x3b => "DW_TAG_unspecified_type",
0x3c => "DW_TAG_partial_unit",
0x3d => "DW_TAG_imported_unit",
0x3f => "DW_TAG_condition",
0x40 => "DW_TAG_shared_type",
0x41 => "DW_TAG_type_unit",
0x42 => "DW_TAG_rvalue_reference_type",
0x43 => "DW_TAG_template_alias",
0x100 => "DW_TAG_auto_variable",
0x101 => "DW_TAG_arg_variable",
0x44 => "DW_TAG_coarray_type",
0x45 => "DW_TAG_generic_subrange",
0x46 => "DW_TAG_dynamic_type",
0x4081 => "DW_TAG_MIPS_loop",
0x4101 => "DW_TAG_format_label",
0x4102 => "DW_TAG_function_template",
0x4103 => "DW_TAG_class_template",
0x4106 => "DW_TAG_GNU_template_template_param",
0x4107 => "DW_TAG_GNU_template_parameter_pack",
0x4108 => "DW_TAG_GNU_formal_parameter_pack",
0x4200 => "DW_TAG_APPLE_property",
_ => return None,
})
}
pub(crate) fn encoding(value: u64) -> Option<&'static str> {
Some(match value {
0x1 => "DW_ATE_address",
0x2 => "DW_ATE_boolean",
0x3 => "DW_ATE_complex_float",
0x4 => "DW_ATE_float",
0x5 => "DW_ATE_signed",
0x6 => "DW_ATE_signed_char",
0x7 => "DW_ATE_unsigned",
0x8 => "DW_ATE_unsigned_char",
0x9 => "DW_ATE_imaginary_float",
0xa => "DW_ATE_packed_decimal",
0xb => "DW_ATE_numeric_string",
0xc => "DW_ATE_edited",
0xd => "DW_ATE_signed_fixed",
0xe => "DW_ATE_unsigned_fixed",
0xf => "DW_ATE_decimal_float",
0x10 => "DW_ATE_UTF",
_ => return None,
})
}
pub(crate) fn language(value: u64) -> Option<&'static str> {
Some(match value {
0x1 => "DW_LANG_C89",
0x2 => "DW_LANG_C",
0x3 => "DW_LANG_Ada83",
0x4 => "DW_LANG_C_plus_plus",
0x5 => "DW_LANG_Cobol74",
0x6 => "DW_LANG_Cobol85",
0x7 => "DW_LANG_Fortran77",
0x8 => "DW_LANG_Fortran90",
0x9 => "DW_LANG_Pascal83",
0xa => "DW_LANG_Modula2",
0xb => "DW_LANG_Java",
0xc => "DW_LANG_C99",
0xd => "DW_LANG_Ada95",
0xe => "DW_LANG_Fortran95",
0xf => "DW_LANG_PLI",
0x10 => "DW_LANG_ObjC",
0x11 => "DW_LANG_ObjC_plus_plus",
0x12 => "DW_LANG_UPC",
0x13 => "DW_LANG_D",
0x14 => "DW_LANG_Python",
0x15 => "DW_LANG_OpenCL",
0x16 => "DW_LANG_Go",
0x17 => "DW_LANG_Modula3",
0x18 => "DW_LANG_Haskell",
0x19 => "DW_LANG_C_plus_plus_03",
0x1a => "DW_LANG_C_plus_plus_11",
0x1b => "DW_LANG_OCaml",
0x1c => "DW_LANG_Rust",
0x1d => "DW_LANG_C11",
0x1e => "DW_LANG_Swift",
0x1f => "DW_LANG_Julia",
0x20 => "DW_LANG_Dylan",
0x21 => "DW_LANG_C_plus_plus_14",
0x22 => "DW_LANG_Fortran03",
0x23 => "DW_LANG_Fortran08",
0x8001 => "DW_LANG_Mips_Assembler",
_ => return None,
})
}
pub(crate) fn virtuality(value: u64) -> Option<&'static str> {
Some(match value {
0x0 => "DW_VIRTUALITY_none",
0x1 => "DW_VIRTUALITY_virtual",
0x2 => "DW_VIRTUALITY_pure_virtual",
_ => return None,
})
}
pub(crate) fn operation(value: u64) -> Option<&'static str> {
Some(match value {
0x3 => "DW_OP_addr",
0x6 => "DW_OP_deref",
0x8 => "DW_OP_const1u",
0x9 => "DW_OP_const1s",
0xa => "DW_OP_const2u",
0xb => "DW_OP_const2s",
0xc => "DW_OP_const4u",
0xd => "DW_OP_const4s",
0xe => "DW_OP_const8u",
0xf => "DW_OP_const8s",
0x10 => "DW_OP_constu",
0x11 => "DW_OP_consts",
0x12 => "DW_OP_dup",
0x13 => "DW_OP_drop",
0x14 => "DW_OP_over",
0x15 => "DW_OP_pick",
0x16 => "DW_OP_swap",
0x17 => "DW_OP_rot",
0x18 => "DW_OP_xderef",
0x19 => "DW_OP_abs",
0x1a => "DW_OP_and",
0x1b => "DW_OP_div",
0x1c => "DW_OP_minus",
0x1d => "DW_OP_mod",
0x1e => "DW_OP_mul",
0x1f => "DW_OP_neg",
0x20 => "DW_OP_not",
0x21 => "DW_OP_or",
0x22 => "DW_OP_plus",
0x23 => "DW_OP_plus_uconst",
0x24 => "DW_OP_shl",
0x25 => "DW_OP_shr",
0x26 => "DW_OP_shra",
0x27 => "DW_OP_xor",
0x2f => "DW_OP_skip",
0x28 => "DW_OP_bra",
0x29 => "DW_OP_eq",
0x2a => "DW_OP_ge",
0x2b => "DW_OP_gt",
0x2c => "DW_OP_le",
0x2d => "DW_OP_lt",
0x2e => "DW_OP_ne",
0x30 => "DW_OP_lit0",
0x31 => "DW_OP_lit1",
0x32 => "DW_OP_lit2",
0x33 => "DW_OP_lit3",
0x34 => "DW_OP_lit4",
0x35 => "DW_OP_lit5",
0x36 => "DW_OP_lit6",
0x37 => "DW_OP_lit7",
0x38 => "DW_OP_lit8",
0x39 => "DW_OP_lit9",
0x3a => "DW_OP_lit10",
0x3b => "DW_OP_lit11",
0x3c => "DW_OP_lit12",
0x3d => "DW_OP_lit13",
0x3e => "DW_OP_lit14",
0x3f => "DW_OP_lit15",
0x40 => "DW_OP_lit16",
0x41 => "DW_OP_lit17",
0x42 => "DW_OP_lit18",
0x43 => "DW_OP_lit19",
0x44 => "DW_OP_lit20",
0x45 => "DW_OP_lit21",
0x46 => "DW_OP_lit22",
0x47 => "DW_OP_lit23",
0x48 => "DW_OP_lit24",
0x49 => "DW_OP_lit25",
0x4a => "DW_OP_lit26",
0x4b => "DW_OP_lit27",
0x4c => "DW_OP_lit28",
0x4d => "DW_OP_lit29",
0x4e => "DW_OP_lit30",
0x4f => "DW_OP_lit31",
0x50 => "DW_OP_reg0",
0x51 => "DW_OP_reg1",
0x52 => "DW_OP_reg2",
0x53 => "DW_OP_reg3",
0x54 => "DW_OP_reg4",
0x55 => "DW_OP_reg5",
0x56 => "DW_OP_reg6",
0x57 => "DW_OP_reg7",
0x58 => "DW_OP_reg8",
0x59 => "DW_OP_reg9",
0x5a => "DW_OP_reg10",
0x5b => "DW_OP_reg11",
0x5c => "DW_OP_reg12",
0x5d => "DW_OP_reg13",
0x5e => "DW_OP_reg14",
0x5f => "DW_OP_reg15",
0x60 => "DW_OP_reg16",
0x61 => "DW_OP_reg17",
0x62 => "DW_OP_reg18",
0x63 => "DW_OP_reg19",
0x64 => "DW_OP_reg20",
0x65 => "DW_OP_reg21",
0x66 => "DW_OP_reg22",
0x67 => "DW_OP_reg23",
0x68 => "DW_OP_reg24",
0x69 => "DW_OP_reg25",
0x6a => "DW_OP_reg26",
0x6b => "DW_OP_reg27",
0x6c => "DW_OP_reg28",
0x6d => "DW_OP_reg29",
0x6e => "DW_OP_reg30",
0x6f => "DW_OP_reg31",
0x70 => "DW_OP_breg0",
0x71 => "DW_OP_breg1",
0x72 => "DW_OP_breg2",
0x73 => "DW_OP_breg3",
0x74 => "DW_OP_breg4",
0x75 => "DW_OP_breg5",
0x76 => "DW_OP_breg6",
0x77 => "DW_OP_breg7",
0x78 => "DW_OP_breg8",
0x79 => "DW_OP_breg9",
0x7a => "DW_OP_breg10",
0x7b => "DW_OP_breg11",
0x7c => "DW_OP_breg12",
0x7d => "DW_OP_breg13",
0x7e => "DW_OP_breg14",
0x7f => "DW_OP_breg15",
0x80 => "DW_OP_breg16",
0x81 => "DW_OP_breg17",
0x82 => "DW_OP_breg18",
0x83 => "DW_OP_breg19",
0x84 => "DW_OP_breg20",
0x85 => "DW_OP_breg21",
0x86 => "DW_OP_breg22",
0x87 => "DW_OP_breg23",
0x88 => "DW_OP_breg24",
0x89 => "DW_OP_breg25",
0x8a => "DW_OP_breg26",
0x8b => "DW_OP_breg27",
0x8c => "DW_OP_breg28",
0x8d => "DW_OP_breg29",
0x8e => "DW_OP_breg30",
0x8f => "DW_OP_breg31",
0x90 => "DW_OP_regx",
0x91 => "DW_OP_fbreg",
0x92 => "DW_OP_bregx",
0x93 => "DW_OP_piece",
0x94 => "DW_OP_deref_size",
0x95 => "DW_OP_xderef_size",
0x96 => "DW_OP_nop",
0x97 => "DW_OP_push_object_address",
0x98 => "DW_OP_call2",
0x99 => "DW_OP_call4",
0x9a => "DW_OP_call_ref",
0x9b => "DW_OP_form_tls_address",
0x9c => "DW_OP_call_frame_cfa",
0x9d => "DW_OP_bit_piece",
0x9e => "DW_OP_implicit_value",
0x9f => "DW_OP_stack_value",
0xe0 => "DW_OP_GNU_push_tls_address",
0xfb => "DW_OP_GNU_addr_index",
0xfc => "DW_OP_GNU_const_index",
_ => return None,
})
}