Struct charon_lib::options::CliOpts  
source · 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: boolExtract the unstructured LLBC (i.e., don’t reconstruct the control-flow)
lib: boolCompile the package’s library
bin: Option<String>Compile the specified binary
mir_promoted: boolExtract the promoted MIR instead of the built MIR
mir_optimized: boolExtract 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: boolIf activated, use Polonius’ non-lexical lifetimes (NLL) analysis. Otherwise, use the standard borrow checker.
no_code_duplication: bool§extract_opaque_bodies: boolUsually 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: boolWhether to hide the Sized, Sync, Send and Unpin marker traits anywhere they show
up.
no_cargo: boolDo 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: boolPanic on the first error. This is useful for debugging.
error_on_warnings: boolPrint 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: boolImplementations§
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§default unsafe fn clone_to_uninit(&self, dst: *mut T)
 
default 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