Crate target_lexicon

source ·
Expand description

Target triple support.

Macros

  • A convenient syntax for triple literals.

Structs

  • A simple wrapper around Triple that provides an implementation of Default which defaults to Triple::host().
  • A simple wrapper around Triple that provides an implementation of Default which defaults to Triple::unknown().
  • A target “triple”. Historically such things had three fields, though they’ve added additional fields over time.

Enums

  • The “architecture” field, which in some cases also specifies a specific subarchitecture.
  • The “binary format” field, which is usually omitted, and the binary format is implied by the other fields.
  • The C data model used on a target.
  • The calling convention, which specifies things like which registers are used for passing arguments, which registers are callee-saved, and so on.
  • A string for a Vendor::Custom that can either be used in const contexts or hold dynamic strings.
  • The target memory endianness.
  • The “environment” field, which specifies an ABI environment on top of the operating system. In many configurations, this field is omitted, and the environment is implied by the operating system.
  • An enum for all 32-bit MIPS architectures (not just “MIPS32”).
  • An enum for all 64-bit MIPS architectures (not just “MIPS64”).
  • The “operating system” field, which sometimes implies an environment, and sometimes isn’t an actual operating system.
  • An error returned from parsing a triple.
  • The width of a pointer (in the default address space).
  • An enum for all 32-bit RISC-V architectures.
  • An enum for all 64-bit RISC-V architectures.
  • The size of a type.
  • The “vendor” field, which in practice is little more than an arbitrary modifier.
  • An enum for all 32-bit x86 architectures.

Constants

  • The Triple of the current host.