pub struct CliOpts {Show 30 fields
pub ullbc: bool,
pub lib: bool,
pub bin: Option<String>,
pub mir_promoted: bool,
pub mir_optimized: bool,
pub input_file: Option<PathBuf>,
pub read_llbc: Option<PathBuf>,
pub dest_dir: Option<PathBuf>,
pub dest_file: Option<PathBuf>,
pub use_polonius: bool,
pub skip_borrowck: bool,
pub no_code_duplication: bool,
pub extract_opaque_bodies: bool,
pub translate_all_methods: bool,
pub include: Vec<String>,
pub opaque: Vec<String>,
pub exclude: Vec<String>,
pub remove_associated_types: Vec<String>,
pub hide_marker_traits: bool,
pub no_cargo: bool,
pub rustc_args: Vec<String>,
pub cargo_args: Vec<String>,
pub abort_on_error: bool,
pub error_on_warnings: bool,
pub no_serialize: bool,
pub print_original_ullbc: bool,
pub print_ullbc: bool,
pub print_built_llbc: bool,
pub print_llbc: bool,
pub no_merge_goto_chains: bool,
}
Fields§
§ullbc: bool
Extract the unstructured LLBC (i.e., don’t reconstruct the control-flow)
lib: bool
Compile the package’s library
bin: Option<String>
Compile the specified binary
mir_promoted: bool
Extract the promoted MIR instead of the built MIR
mir_optimized: bool
Extract the optimized MIR instead of the built MIR
input_file: Option<PathBuf>
The input file (the entry point of the crate to extract). This is needed if you want to define a custom entry point (to only extract part of a crate for instance).
read_llbc: Option<PathBuf>
Read an llbc file and pretty-print it. This is a terrible API, we should use subcommands.
dest_dir: Option<PathBuf>
The destination directory. Files will be generated as <dest_dir>/<crate_name>.{u}llbc
,
unless dest_file
is set. dest_dir
defaults to the current directory.
dest_file: Option<PathBuf>
The destination file. By default <dest_dir>/<crate_name>.llbc
. If this is set we ignore
dest_dir
.
use_polonius: bool
If activated, use Polonius’ non-lexical lifetimes (NLL) analysis. Otherwise, use the standard borrow checker.
skip_borrowck: bool
If activated, this skips borrow-checking of the crate.
no_code_duplication: bool
§extract_opaque_bodies: bool
Usually we skip the bodies of foreign methods and structs with private fields. When this flag is on, we don’t.
translate_all_methods: bool
Usually we skip the provided methods that aren’t used. When this flag is on, we translate them all.
include: Vec<String>
Whitelist of items to translate. These use the name-matcher syntax.
opaque: Vec<String>
Blacklist of items to keep opaque. These use the name-matcher syntax.
exclude: Vec<String>
Blacklist of items to not translate at all. These use the name-matcher syntax.
remove_associated_types: Vec<String>
List of traits for which we transform associated types to type parameters.
hide_marker_traits: bool
Whether to hide the Sized
, Sync
, Send
and Unpin
marker traits anywhere they show
up.
no_cargo: bool
Do not run cargo; instead, run the driver directly.
rustc_args: Vec<String>
Extra flags to pass to rustc.
cargo_args: Vec<String>
Extra flags to pass to cargo. Incompatible with --no-cargo
.
abort_on_error: bool
Panic on the first error. This is useful for debugging.
error_on_warnings: bool
Print the errors as warnings
no_serialize: bool
§print_original_ullbc: bool
§print_ullbc: bool
§print_built_llbc: bool
§print_llbc: bool
§no_merge_goto_chains: bool
Implementations§
Trait Implementations§
Source§impl Args for CliOpts
impl Args for CliOpts
Source§fn group_id() -> Option<Id>
fn group_id() -> Option<Id>
ArgGroup::id
][crate::ArgGroup::id] for this set of argumentsSource§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command
] so it can instantiate self
via
[FromArgMatches::update_from_arg_matches_mut
] Read moreSource§impl<'de> Deserialize<'de> for CliOpts
impl<'de> Deserialize<'de> for CliOpts
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl FromArgMatches for CliOpts
impl FromArgMatches for CliOpts
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches
to self
.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches
to self
.Auto Trait Implementations§
impl Freeze for CliOpts
impl RefUnwindSafe for CliOpts
impl Send for CliOpts
impl Sync for CliOpts
impl Unpin for CliOpts
impl UnwindSafe for CliOpts
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<I, T> ExtractContext<I, ()> for T
impl<I, T> ExtractContext<I, ()> for T
§fn extract_context(self, _original_input: I)
fn extract_context(self, _original_input: I)
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more