/*
 *
 * AUTO-GENERATED BY ./update
 * DO NOT MODIFY
 *
 * cargo run --manifest-path update/Cargo.toml
 */

#![allow(non_upper_case_globals, non_camel_case_types)]

use super::*;

pub(crate) const RUSTC_VERSION: &str = "1.59.0";

pub const ALL_BUILTINS: &[TargetInfo] = &[
    TargetInfo {
        triple: Triple::new_const("aarch64-apple-darwin"),
        os: Some(Os::macos),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-apple-ios"),
        os: Some(Os::ios),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-apple-ios-macabi"),
        os: Some(Os::ios),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-apple-ios-sim"),
        os: Some(Os::ios),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-apple-tvos"),
        os: Some(Os::tvos),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-fuchsia"),
        os: Some(Os::fuchsia),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-kmc-solid_asp3"),
        os: Some(Os::solid_asp3),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::kmc),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-linux-android"),
        os: Some(Os::android),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-pc-windows-msvc"),
        os: Some(Os::windows),
        arch: Arch::aarch64,
        env: Some(Env::msvc),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-freebsd"),
        os: Some(Os::freebsd),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-hermit"),
        os: Some(Os::hermit),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::aarch64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-linux-gnu_ilp32"),
        os: Some(Os::linux),
        arch: Arch::aarch64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-linux-musl"),
        os: Some(Os::linux),
        arch: Arch::aarch64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-netbsd"),
        os: Some(Os::netbsd),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-none"),
        os: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-none-softfloat"),
        os: None,
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-openbsd"),
        os: Some(Os::openbsd),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-redox"),
        os: Some(Os::redox),
        arch: Arch::aarch64,
        env: Some(Env::relibc),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-unknown-uefi"),
        os: Some(Os::uefi),
        arch: Arch::aarch64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-uwp-windows-msvc"),
        os: Some(Os::windows),
        arch: Arch::aarch64,
        env: Some(Env::msvc),
        vendor: Some(Vendor::uwp),
        families: Families::windows,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64-wrs-vxworks"),
        os: Some(Os::vxworks),
        arch: Arch::aarch64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64_be-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::aarch64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("aarch64_be-unknown-linux-gnu_ilp32"),
        os: Some(Os::linux),
        arch: Arch::aarch64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("arm-linux-androideabi"),
        os: Some(Os::android),
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("arm-unknown-linux-gnueabi"),
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("arm-unknown-linux-gnueabihf"),
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("arm-unknown-linux-musleabi"),
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("arm-unknown-linux-musleabihf"),
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armebv7r-none-eabi"),
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("armebv7r-none-eabihf"),
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("armv4t-unknown-linux-gnueabi"),
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv5te-unknown-linux-gnueabi"),
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv5te-unknown-linux-musleabi"),
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv5te-unknown-linux-uclibceabi"),
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::uclibc),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv6-unknown-freebsd"),
        os: Some(Os::freebsd),
        arch: Arch::arm,
        env: Some(Env::gnueabihf),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv6-unknown-netbsd-eabihf"),
        os: Some(Os::netbsd),
        arch: Arch::arm,
        env: Some(Env::eabihf),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv6k-nintendo-3ds"),
        os: Some(Os::horizon),
        arch: Arch::arm,
        env: Some(Env::newlib),
        vendor: Some(Vendor::nintendo),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-apple-ios"),
        os: Some(Os::ios),
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-linux-androideabi"),
        os: Some(Os::android),
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-unknown-freebsd"),
        os: Some(Os::freebsd),
        arch: Arch::arm,
        env: Some(Env::gnueabihf),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-unknown-linux-gnueabi"),
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-unknown-linux-gnueabihf"),
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-unknown-linux-musleabi"),
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-unknown-linux-musleabihf"),
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-unknown-linux-uclibceabihf"),
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::uclibc),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-unknown-netbsd-eabihf"),
        os: Some(Os::netbsd),
        arch: Arch::arm,
        env: Some(Env::eabihf),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7-wrs-vxworks-eabihf"),
        os: Some(Os::vxworks),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7a-kmc-solid_asp3-eabi"),
        os: Some(Os::solid_asp3),
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::kmc),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7a-kmc-solid_asp3-eabihf"),
        os: Some(Os::solid_asp3),
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::kmc),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7a-none-eabi"),
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7a-none-eabihf"),
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7r-none-eabi"),
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7r-none-eabihf"),
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("armv7s-apple-ios"),
        os: Some(Os::ios),
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("asmjs-unknown-emscripten"),
        os: Some(Os::emscripten),
        arch: Arch::wasm32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix_wasm,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("avr-unknown-gnu-atmega328"),
        os: None,
        arch: Arch::avr,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 16,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("bpfeb-unknown-none"),
        os: None,
        arch: Arch::bpf,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("bpfel-unknown-none"),
        os: None,
        arch: Arch::bpf,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("hexagon-unknown-linux-musl"),
        os: Some(Os::linux),
        arch: Arch::hexagon,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i386-apple-ios"),
        os: Some(Os::ios),
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i586-pc-windows-msvc"),
        os: Some(Os::windows),
        arch: Arch::x86,
        env: Some(Env::msvc),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i586-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i586-unknown-linux-musl"),
        os: Some(Os::linux),
        arch: Arch::x86,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i686-apple-darwin"),
        os: Some(Os::macos),
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i686-linux-android"),
        os: Some(Os::android),
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i686-pc-windows-gnu"),
        os: Some(Os::windows),
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i686-pc-windows-msvc"),
        os: Some(Os::windows),
        arch: Arch::x86,
        env: Some(Env::msvc),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i686-unknown-freebsd"),
        os: Some(Os::freebsd),
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i686-unknown-haiku"),
        os: Some(Os::haiku),
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i686-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i686-unknown-linux-musl"),
        os: Some(Os::linux),
        arch: Arch::x86,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i686-unknown-netbsd"),
        os: Some(Os::netbsd),
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i686-unknown-openbsd"),
        os: Some(Os::openbsd),
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i686-unknown-uefi"),
        os: Some(Os::uefi),
        arch: Arch::x86,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i686-uwp-windows-gnu"),
        os: Some(Os::windows),
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::uwp),
        families: Families::windows,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i686-uwp-windows-msvc"),
        os: Some(Os::windows),
        arch: Arch::x86,
        env: Some(Env::msvc),
        vendor: Some(Vendor::uwp),
        families: Families::windows,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("i686-wrs-vxworks"),
        os: Some(Os::vxworks),
        arch: Arch::x86,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("m68k-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::m68k,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("mips-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::mips,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("mips-unknown-linux-musl"),
        os: Some(Os::linux),
        arch: Arch::mips,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("mips-unknown-linux-uclibc"),
        os: Some(Os::linux),
        arch: Arch::mips,
        env: Some(Env::uclibc),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("mips64-unknown-linux-gnuabi64"),
        os: Some(Os::linux),
        arch: Arch::mips64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("mips64-unknown-linux-muslabi64"),
        os: Some(Os::linux),
        arch: Arch::mips64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("mips64el-unknown-linux-gnuabi64"),
        os: Some(Os::linux),
        arch: Arch::mips64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("mips64el-unknown-linux-muslabi64"),
        os: Some(Os::linux),
        arch: Arch::mips64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("mipsel-sony-psp"),
        os: Some(Os::psp),
        arch: Arch::mips,
        env: None,
        vendor: Some(Vendor::sony),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("mipsel-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::mips,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("mipsel-unknown-linux-musl"),
        os: Some(Os::linux),
        arch: Arch::mips,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("mipsel-unknown-linux-uclibc"),
        os: Some(Os::linux),
        arch: Arch::mips,
        env: Some(Env::uclibc),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("mipsel-unknown-none"),
        os: None,
        arch: Arch::mips,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("mipsisa32r6-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::mips,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("mipsisa32r6el-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::mips,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("mipsisa64r6-unknown-linux-gnuabi64"),
        os: Some(Os::linux),
        arch: Arch::mips64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("mipsisa64r6el-unknown-linux-gnuabi64"),
        os: Some(Os::linux),
        arch: Arch::mips64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("msp430-none-elf"),
        os: None,
        arch: Arch::msp430,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 16,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("nvptx64-nvidia-cuda"),
        os: Some(Os::cuda),
        arch: Arch::nvptx64,
        env: None,
        vendor: Some(Vendor::nvidia),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc-unknown-freebsd"),
        os: Some(Os::freebsd),
        arch: Arch::powerpc,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::powerpc,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc-unknown-linux-gnuspe"),
        os: Some(Os::linux),
        arch: Arch::powerpc,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc-unknown-linux-musl"),
        os: Some(Os::linux),
        arch: Arch::powerpc,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc-unknown-netbsd"),
        os: Some(Os::netbsd),
        arch: Arch::powerpc,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc-unknown-openbsd"),
        os: Some(Os::openbsd),
        arch: Arch::powerpc,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc-wrs-vxworks"),
        os: Some(Os::vxworks),
        arch: Arch::powerpc,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc-wrs-vxworks-spe"),
        os: Some(Os::vxworks),
        arch: Arch::powerpc,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc64-unknown-freebsd"),
        os: Some(Os::freebsd),
        arch: Arch::powerpc64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc64-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::powerpc64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc64-unknown-linux-musl"),
        os: Some(Os::linux),
        arch: Arch::powerpc64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc64-wrs-vxworks"),
        os: Some(Os::vxworks),
        arch: Arch::powerpc64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc64le-unknown-freebsd"),
        os: Some(Os::freebsd),
        arch: Arch::powerpc64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc64le-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::powerpc64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("powerpc64le-unknown-linux-musl"),
        os: Some(Os::linux),
        arch: Arch::powerpc64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("riscv32gc-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::riscv32,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("riscv32gc-unknown-linux-musl"),
        os: Some(Os::linux),
        arch: Arch::riscv32,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("riscv32i-unknown-none-elf"),
        os: None,
        arch: Arch::riscv32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("riscv32imac-unknown-none-elf"),
        os: None,
        arch: Arch::riscv32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("riscv32imc-esp-espidf"),
        os: Some(Os::espidf),
        arch: Arch::riscv32,
        env: Some(Env::newlib),
        vendor: Some(Vendor::espressif),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("riscv32imc-unknown-none-elf"),
        os: None,
        arch: Arch::riscv32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("riscv64gc-unknown-freebsd"),
        os: Some(Os::freebsd),
        arch: Arch::riscv64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("riscv64gc-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::riscv64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("riscv64gc-unknown-linux-musl"),
        os: Some(Os::linux),
        arch: Arch::riscv64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("riscv64gc-unknown-none-elf"),
        os: None,
        arch: Arch::riscv64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("riscv64imac-unknown-none-elf"),
        os: None,
        arch: Arch::riscv64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("s390x-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::s390x,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("s390x-unknown-linux-musl"),
        os: Some(Os::linux),
        arch: Arch::s390x,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("sparc-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::sparc,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("sparc64-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::sparc64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("sparc64-unknown-netbsd"),
        os: Some(Os::netbsd),
        arch: Arch::sparc64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("sparc64-unknown-openbsd"),
        os: Some(Os::openbsd),
        arch: Arch::sparc64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("sparcv9-sun-solaris"),
        os: Some(Os::solaris),
        arch: Arch::sparc64,
        env: None,
        vendor: Some(Vendor::sun),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::big,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv4t-none-eabi"),
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv6m-none-eabi"),
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv7a-pc-windows-msvc"),
        os: Some(Os::windows),
        arch: Arch::arm,
        env: Some(Env::msvc),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv7a-uwp-windows-msvc"),
        os: Some(Os::windows),
        arch: Arch::arm,
        env: Some(Env::msvc),
        vendor: Some(Vendor::uwp),
        families: Families::windows,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv7em-none-eabi"),
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv7em-none-eabihf"),
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv7m-none-eabi"),
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv7neon-linux-androideabi"),
        os: Some(Os::android),
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv7neon-unknown-linux-gnueabihf"),
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv7neon-unknown-linux-musleabihf"),
        os: Some(Os::linux),
        arch: Arch::arm,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv8m.base-none-eabi"),
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv8m.main-none-eabi"),
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("thumbv8m.main-none-eabihf"),
        os: None,
        arch: Arch::arm,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("wasm32-unknown-emscripten"),
        os: Some(Os::emscripten),
        arch: Arch::wasm32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix_wasm,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("wasm32-unknown-unknown"),
        os: Some(Os::unknown),
        arch: Arch::wasm32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::wasm,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("wasm32-wasi"),
        os: Some(Os::wasi),
        arch: Arch::wasm32,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::wasm,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("wasm64-unknown-unknown"),
        os: Some(Os::unknown),
        arch: Arch::wasm64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::wasm,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-apple-darwin"),
        os: Some(Os::macos),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-apple-ios"),
        os: Some(Os::ios),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-apple-ios-macabi"),
        os: Some(Os::ios),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-apple-tvos"),
        os: Some(Os::tvos),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::apple),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-fortanix-unknown-sgx"),
        os: Some(Os::unknown),
        arch: Arch::x86_64,
        env: Some(Env::sgx),
        vendor: Some(Vendor::fortanix),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-fuchsia"),
        os: Some(Os::fuchsia),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-linux-android"),
        os: Some(Os::android),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-pc-solaris"),
        os: Some(Os::solaris),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::pc),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-pc-windows-gnu"),
        os: Some(Os::windows),
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-pc-windows-msvc"),
        os: Some(Os::windows),
        arch: Arch::x86_64,
        env: Some(Env::msvc),
        vendor: Some(Vendor::pc),
        families: Families::windows,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-sun-solaris"),
        os: Some(Os::solaris),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::sun),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-dragonfly"),
        os: Some(Os::dragonfly),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-freebsd"),
        os: Some(Os::freebsd),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-haiku"),
        os: Some(Os::haiku),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-hermit"),
        os: Some(Os::hermit),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-illumos"),
        os: Some(Os::illumos),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-l4re-uclibc"),
        os: Some(Os::l4re),
        arch: Arch::x86_64,
        env: Some(Env::uclibc),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-linux-gnu"),
        os: Some(Os::linux),
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-linux-gnux32"),
        os: Some(Os::linux),
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 32,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-linux-musl"),
        os: Some(Os::linux),
        arch: Arch::x86_64,
        env: Some(Env::musl),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-netbsd"),
        os: Some(Os::netbsd),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-none"),
        os: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-none-hermitkernel"),
        os: None,
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-none-linuxkernel"),
        os: None,
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-openbsd"),
        os: Some(Os::openbsd),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-redox"),
        os: Some(Os::redox),
        arch: Arch::x86_64,
        env: Some(Env::relibc),
        vendor: Some(Vendor::unknown),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-unknown-uefi"),
        os: Some(Os::uefi),
        arch: Arch::x86_64,
        env: None,
        vendor: Some(Vendor::unknown),
        families: Families::new_const(&[]),
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-uwp-windows-gnu"),
        os: Some(Os::windows),
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::uwp),
        families: Families::windows,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-uwp-windows-msvc"),
        os: Some(Os::windows),
        arch: Arch::x86_64,
        env: Some(Env::msvc),
        vendor: Some(Vendor::uwp),
        families: Families::windows,
        pointer_width: 64,
        endian: Endian::little,
    },
    TargetInfo {
        triple: Triple::new_const("x86_64-wrs-vxworks"),
        os: Some(Os::vxworks),
        arch: Arch::x86_64,
        env: Some(Env::gnu),
        vendor: Some(Vendor::wrs),
        families: Families::unix,
        pointer_width: 64,
        endian: Endian::little,
    },
];

impl super::Arch {
    pub const aarch64: Arch = Arch::new_const("aarch64");
    pub const arm: Arch = Arch::new_const("arm");
    pub const avr: Arch = Arch::new_const("avr");
    pub const bpf: Arch = Arch::new_const("bpf");
    pub const hexagon: Arch = Arch::new_const("hexagon");
    pub const m68k: Arch = Arch::new_const("m68k");
    pub const mips: Arch = Arch::new_const("mips");
    pub const mips64: Arch = Arch::new_const("mips64");
    pub const msp430: Arch = Arch::new_const("msp430");
    pub const nvptx64: Arch = Arch::new_const("nvptx64");
    pub const powerpc: Arch = Arch::new_const("powerpc");
    pub const powerpc64: Arch = Arch::new_const("powerpc64");
    pub const riscv32: Arch = Arch::new_const("riscv32");
    pub const riscv64: Arch = Arch::new_const("riscv64");
    pub const s390x: Arch = Arch::new_const("s390x");
    pub const sparc: Arch = Arch::new_const("sparc");
    pub const sparc64: Arch = Arch::new_const("sparc64");
    pub const wasm32: Arch = Arch::new_const("wasm32");
    pub const wasm64: Arch = Arch::new_const("wasm64");
    pub const x86: Arch = Arch::new_const("x86");
    pub const x86_64: Arch = Arch::new_const("x86_64");
}

impl super::Vendor {
    pub const apple: Vendor = Vendor::new_const("apple");
    pub const espressif: Vendor = Vendor::new_const("espressif");
    pub const fortanix: Vendor = Vendor::new_const("fortanix");
    pub const kmc: Vendor = Vendor::new_const("kmc");
    pub const nintendo: Vendor = Vendor::new_const("nintendo");
    pub const nvidia: Vendor = Vendor::new_const("nvidia");
    pub const pc: Vendor = Vendor::new_const("pc");
    pub const sony: Vendor = Vendor::new_const("sony");
    pub const sun: Vendor = Vendor::new_const("sun");
    pub const unknown: Vendor = Vendor::new_const("unknown");
    pub const uwp: Vendor = Vendor::new_const("uwp");
    pub const wrs: Vendor = Vendor::new_const("wrs");
}

impl super::Os {
    pub const android: Os = Os::new_const("android");
    pub const cuda: Os = Os::new_const("cuda");
    pub const dragonfly: Os = Os::new_const("dragonfly");
    pub const emscripten: Os = Os::new_const("emscripten");
    pub const espidf: Os = Os::new_const("espidf");
    pub const freebsd: Os = Os::new_const("freebsd");
    pub const fuchsia: Os = Os::new_const("fuchsia");
    pub const haiku: Os = Os::new_const("haiku");
    pub const hermit: Os = Os::new_const("hermit");
    pub const horizon: Os = Os::new_const("horizon");
    pub const illumos: Os = Os::new_const("illumos");
    pub const ios: Os = Os::new_const("ios");
    pub const l4re: Os = Os::new_const("l4re");
    pub const linux: Os = Os::new_const("linux");
    pub const macos: Os = Os::new_const("macos");
    pub const netbsd: Os = Os::new_const("netbsd");
    pub const openbsd: Os = Os::new_const("openbsd");
    pub const psp: Os = Os::new_const("psp");
    pub const redox: Os = Os::new_const("redox");
    pub const solaris: Os = Os::new_const("solaris");
    pub const solid_asp3: Os = Os::new_const("solid_asp3");
    pub const tvos: Os = Os::new_const("tvos");
    pub const uefi: Os = Os::new_const("uefi");
    pub const unknown: Os = Os::new_const("unknown");
    pub const vxworks: Os = Os::new_const("vxworks");
    pub const wasi: Os = Os::new_const("wasi");
    pub const windows: Os = Os::new_const("windows");
}

impl super::Family {
    pub const unix: Family = Family::new_const("unix");
    pub const wasm: Family = Family::new_const("wasm");
    pub const windows: Family = Family::new_const("windows");
}

const __families_unix: &[Family] = &[Family::unix];
const __families_unix_wasm: &[Family] = &[Family::unix, Family::wasm];
const __families_wasm: &[Family] = &[Family::wasm];
const __families_windows: &[Family] = &[Family::windows];

impl super::Families {
    pub const unix: Families = Families::new_const(__families_unix);
    pub const unix_wasm: Families = Families::new_const(__families_unix_wasm);
    pub const wasm: Families = Families::new_const(__families_wasm);
    pub const windows: Families = Families::new_const(__families_windows);
}

impl super::Env {
    pub const eabihf: Env = Env::new_const("eabihf");
    pub const gnu: Env = Env::new_const("gnu");
    pub const gnueabihf: Env = Env::new_const("gnueabihf");
    pub const msvc: Env = Env::new_const("msvc");
    pub const musl: Env = Env::new_const("musl");
    pub const newlib: Env = Env::new_const("newlib");
    pub const relibc: Env = Env::new_const("relibc");
    pub const sgx: Env = Env::new_const("sgx");
    pub const uclibc: Env = Env::new_const("uclibc");
}
