pub struct BackendOptions<E: Extension> {
pub backend: Backend<E>,
pub dry_run: bool,
pub verbose: u8,
pub stats: bool,
pub profile: bool,
pub debug_engine: Option<DebugEngineMode>,
pub extract_type_aliases: bool,
pub translation_options: TranslationOptions,
pub output_dir: Option<PathBuf>,
pub cli_extension: E::BackendOptions,
}
Fields§
§backend: Backend<E>
§dry_run: bool
Don’t write anything on disk. Output everything as JSON to stdout instead.
verbose: u8
Verbose mode for the Hax engine. Set -vv
for maximal verbosity.
stats: bool
Prints statistics about how many items have been translated successfully by the engine.
profile: bool
Enables profiling for the engine: for each phase of the engine, time and memory usage are recorded and reported.
debug_engine: Option<DebugEngineMode>
Enable engine debugging: dumps the AST at each phase.
The value of <DEBUG_ENGINE>
can be either:
{n}{n} - interactive
(or i
): enables debugging of the engine,
and visualize interactively in a webapp how a crate was
transformed by each phase, both in Rust-like syntax and
browsing directly the internal AST. By default, the webapp is
hosted on http://localhost:8000
, the port can be override by
setting the HAX_DEBUGGER_PORT
environment variable.
{n} - <FILE>
or file:<FILE>
: outputs the different AST as JSON
to <FILE>
. <FILE>
can be either [-] or a path.
extract_type_aliases: bool
Extract type aliases. This is disabled by default, since extracted terms depends on expanded types rather than on type aliases. Turning this option on is discouraged: Rust type synonyms can ommit generic bounds, which are ususally necessary in the hax backends, leading to typechecking errors. For more details see https://github.com/hacspec/hax/issues/708.
translation_options: TranslationOptions
§output_dir: Option<PathBuf>
Where to put the output files resulting from the translation.
Defaults to “
cli_extension: E::BackendOptions
Trait Implementations§
source§impl<E: Extension> Args for BackendOptions<E>
impl<E: Extension> Args for BackendOptions<E>
source§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<E: Clone + Extension> Clone for BackendOptions<E>where
E::BackendOptions: Clone,
impl<E: Clone + Extension> Clone for BackendOptions<E>where
E::BackendOptions: Clone,
source§fn clone(&self) -> BackendOptions<E>
fn clone(&self) -> BackendOptions<E>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<E: Extension> CommandFactory for BackendOptions<E>
impl<E: Extension> CommandFactory for BackendOptions<E>
source§impl<E: Debug + Extension> Debug for BackendOptions<E>where
E::BackendOptions: Debug,
impl<E: Debug + Extension> Debug for BackendOptions<E>where
E::BackendOptions: Debug,
source§impl<'de, E> Deserialize<'de> for BackendOptions<E>
impl<'de, E> Deserialize<'de> for BackendOptions<E>
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<E: Extension> FromArgMatches for BackendOptions<E>
impl<E: Extension> FromArgMatches for BackendOptions<E>
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<E: Extension + JsonSchema> JsonSchema for BackendOptions<E>
impl<E: Extension + JsonSchema> JsonSchema for BackendOptions<E>
source§fn schema_name() -> String
fn schema_name() -> String
source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
source§fn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read moresource§impl<E: Extension> Parser for BackendOptions<E>
impl<E: Extension> Parser for BackendOptions<E>
source§fn parse_from<I, T>(itr: I) -> Self
fn parse_from<I, T>(itr: I) -> Self
source§fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
source§fn update_from<I, T>(&mut self, itr: I)
fn update_from<I, T>(&mut self, itr: I)
Auto Trait Implementations§
impl<E> Freeze for BackendOptions<E>
impl<E> RefUnwindSafe for BackendOptions<E>where
<E as Extension>::BackendOptions: RefUnwindSafe,
<E as Extension>::FStarOptions: RefUnwindSafe,
impl<E> Send for BackendOptions<E>
impl<E> Sync for BackendOptions<E>
impl<E> Unpin for BackendOptions<E>
impl<E> UnwindSafe for BackendOptions<E>
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
)source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§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