Skip to main content

Options

Struct Options 

Source
#[non_exhaustive]
pub struct Options {
Show 15 fields pub target: Triple, pub opt_level: OptLevel, pub emit: EmitKind, pub debug_info: bool, pub warnings_are_errors: bool, pub error_limit: u32, pub std: Std, pub gnu_extensions: bool, pub gnuc: GnucVersion, pub hosted: bool, pub defines: Vec<String>, pub undefines: Vec<String>, pub search: SearchPath, pub line_markers: bool, pub dumps: Dumps,
}
Expand description

Everything a compilation was asked to do.

Options are a plain value with no interior mutability, so a caller can build one, clone it, tweak one field and run a second compilation, which is exactly what the differential testing in spec/15-testing.md needs.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§target: Triple

The target to generate code for.

§opt_level: OptLevel

The optimisation level.

§emit: EmitKind

What to produce.

§debug_info: bool

Whether to emit debug information.

§warnings_are_errors: bool

Whether warnings are errors.

§error_limit: u32

How many diagnostics to print before giving up. Past a certain point the output is noise from a single earlier mistake, and GCC’s default of no limit is not a kindness.

§std: Std

The dialect, from -std=.

§gnu_extensions: bool

Whether the GNU extensions are on, which is -std=gnu23 rather than -std=c23.

§gnuc: GnucVersion

The GCC release claimed, from -fgnuc-version=.

§hosted: bool

Whether there is a standard library, which is -ffreestanding turned around.

§defines: Vec<String>

-D in command line order. FOO means FOO=1, as GCC has it.

§undefines: Vec<String>

-U in command line order, applied after the defines because -U wins.

§search: SearchPath

Where a header is looked for.

§line_markers: bool

Whether -E writes line markers, which -P turns off.

§dumps: Dumps

What the -d family asks for.

Implementations§

Source§

impl Options

Source

pub fn new(target: Triple) -> Self

Default options for target.

Trait Implementations§

Source§

impl Clone for Options

Source§

fn clone(&self) -> Options

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Options

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Options

Source§

impl PartialEq for Options

Source§

fn eq(&self, other: &Options) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Options

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.