Struct lalrpop::Configuration

source ·
pub struct Configuration { /* private fields */ }
Expand description

Configure various aspects of how LALRPOP works. Intended for use within a build.rs script. To get the default configuration, use Configuration::new.

Implementations§

source§

impl Configuration

source

pub fn new() -> Configuration

Creates the default configuration; equivalent to Configuration::default.

source

pub fn always_use_colors(&mut self) -> &mut Configuration

Always use ANSI colors in output, even if output does not appear to be a TTY.

source

pub fn never_use_colors(&mut self) -> &mut Configuration

Never use ANSI colors in output, even if output appears to be a TTY.

source

pub fn use_colors_if_tty(&mut self) -> &mut Configuration

Use ANSI colors in output if output appears to be a TTY, but not otherwise. This is the default.

source

pub fn set_in_dir<P>(&mut self, dir: P) -> &mut Self
where P: Into<PathBuf>,

Specify a custom directory to search for input files. This directory is recursively searched for .lalrpop files to be considered as input files. This configuration setting also impacts where output files are placed; paths are made relative to the input path before being resolved relative to the output path. By default, the input directory is the current working directory.

source

pub fn set_out_dir<P>(&mut self, dir: P) -> &mut Self
where P: Into<PathBuf>,

Specify a custom directory to use when writing output files. By default, the output directory is the same as the input directory.

source

pub fn use_cargo_dir_conventions(&mut self) -> &mut Self

Apply cargo directory location conventions, by setting the input directory to src and the output directory to $OUT_DIR.

source

pub fn generate_in_source_tree(&mut self) -> &mut Self

Write output files in the same directory of the input files.

If this option is enabled, you have to load the parser as a module:

mod parser; // synthesized from parser.lalrpop

This was the default behaviour up to version 0.15.

source

pub fn force_build(&mut self, val: bool) -> &mut Configuration

If true, always convert .lalrpop files into .rs files, even if the .rs file is newer. Default is false.

source

pub fn emit_rerun_directives(&mut self, val: bool) -> &mut Configuration

If true, print rerun-if-changed directives to standard output, so that Cargo will only rerun the build script if any of the processed .lalrpop files are changed. This option is independent of Self::force_build(), although it would be usual to set Self::force_build() and Self::emit_rerun_directives() at the same time.

While many build scripts will want to set this to true, the default is false, because emitting any rerun directives to Cargo will cause the script to only be rerun when Cargo thinks it is needed. This could lead to hard-to-find bugs if other parts of the build script do not emit directives correctly, or need to be rerun unconditionally.

source

pub fn emit_comments(&mut self, val: bool) -> &mut Configuration

If true, emit comments into the generated code. This makes the generated code significantly larger. Default is false.

source

pub fn emit_whitespace(&mut self, val: bool) -> &mut Configuration

If false, shrinks the generated code by removing redundant white space. Default is true.

source

pub fn emit_report(&mut self, val: bool) -> &mut Configuration

If true, emit report file about generated code.

source

pub fn log_quiet(&mut self) -> &mut Configuration

Minimal logs: only for errors that halt progress.

source

pub fn log_info(&mut self) -> &mut Configuration

Informative logs: give some high-level indications of progress (default).

source

pub fn log_verbose(&mut self) -> &mut Configuration

Verbose logs: more than info, but still not overwhelming.

source

pub fn log_debug(&mut self) -> &mut Configuration

Debug logs: better redirect this to a file. Intended for debugging LALRPOP itself.

source

pub fn set_features<I>(&mut self, iterable: I) -> &mut Configuration
where I: IntoIterator<Item = String>,

Sets the features used during compilation, disables the use of cargo features. (Default: Loaded from CARGO_FEATURE_{} environment variables).

source

pub fn process(&self) -> Result<(), Box<dyn Error>>

Process all files according to the set_in_dir and set_out_dir configuration.

source

pub fn process_current_dir(&self) -> Result<(), Box<dyn Error>>

Process all files in the current directory, which – unless you have changed it – is typically the root of the crate being compiled.

source

pub fn process_dir<P: AsRef<Path>>(&self, path: P) -> Result<(), Box<dyn Error>>

Process all .lalrpop files in path.

source

pub fn process_file<P: AsRef<Path>>( &self, path: P ) -> Result<(), Box<dyn Error>>

Process the given .lalrpop file.

Trait Implementations§

source§

impl Clone for Configuration

source§

fn clone(&self) -> Configuration

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Default for Configuration

source§

fn default() -> Configuration

Returns the “default value” for a type. Read more

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> 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,

§

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>,

§

type Error = Infallible

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>,

§

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.