diff options
Diffstat (limited to 'third_party/rust/target-lexicon/src/lib.rs')
-rw-r--r-- | third_party/rust/target-lexicon/src/lib.rs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/third_party/rust/target-lexicon/src/lib.rs b/third_party/rust/target-lexicon/src/lib.rs new file mode 100644 index 0000000000..5b48872301 --- /dev/null +++ b/third_party/rust/target-lexicon/src/lib.rs @@ -0,0 +1,57 @@ +//! Target triple support. + +#![deny(missing_docs, trivial_numeric_casts, unused_extern_crates)] +#![warn(unused_import_braces)] +#![cfg_attr( + feature = "cargo-clippy", + warn( + clippy::float_arithmetic, + clippy::mut_mut, + clippy::nonminimal_bool, + clippy::option_map_unwrap_or, + clippy::option_map_unwrap_or_else, + clippy::print_stdout, + clippy::unicode_not_nfc, + clippy::use_self, + ) +)] +#![cfg_attr(not(feature = "std"), no_std)] + +extern crate alloc; + +mod data_model; +mod host; +mod parse_error; +mod targets; +#[macro_use] +mod triple; + +pub use self::data_model::{CDataModel, Size}; +pub use self::host::HOST; +pub use self::parse_error::ParseError; +pub use self::targets::{ + Aarch64Architecture, Architecture, ArmArchitecture, BinaryFormat, CustomVendor, Environment, + Mips32Architecture, Mips64Architecture, OperatingSystem, Riscv32Architecture, + Riscv64Architecture, Vendor, X86_32Architecture, +}; +pub use self::triple::{CallingConvention, Endianness, PointerWidth, Triple}; + +/// A simple wrapper around `Triple` that provides an implementation of +/// `Default` which defaults to `Triple::host()`. +pub struct DefaultToHost(pub Triple); + +impl Default for DefaultToHost { + fn default() -> Self { + Self(Triple::host()) + } +} + +/// A simple wrapper around `Triple` that provides an implementation of +/// `Default` which defaults to `Triple::unknown()`. +pub struct DefaultToUnknown(pub Triple); + +impl Default for DefaultToUnknown { + fn default() -> Self { + Self(Triple::unknown()) + } +} |