pub struct CliOpts {Show 27 fields
pub ullbc: bool,
pub lib: bool,
pub bin: Option<String>,
pub mir_promoted: bool,
pub mir_optimized: bool,
pub crate_name: Option<String>,
pub input_file: Option<PathBuf>,
pub dest_dir: Option<PathBuf>,
pub dest_file: Option<PathBuf>,
pub use_polonius: bool,
pub no_code_duplication: bool,
pub extract_opaque_bodies: bool,
pub include: Vec<String>,
pub opaque: Vec<String>,
pub exclude: 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
crate_name: Option<String>
Provide a custom name for the compiled crate (ignore the name computed by Cargo)
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).
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.
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.
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.
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
source§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
.source§impl Parser for CliOpts
impl Parser for CliOpts
§fn parse_from<I, T>(itr: I) -> Self
fn parse_from<I, T>(itr: I) -> Self
§fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
§fn update_from<I, T>(&mut self, itr: I)
fn update_from<I, T>(&mut self, itr: I)
§fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§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