Crate hax_rust_engine

Crate hax_rust_engine 

Source
Expand description

The Rust engine of hax.

Modules§

ast
The core abstract syntax tree (AST) representation for hax.
backends
Code generation backends.
hax_io
This module helps communicating with cargo-hax.
interning
Interning System
names
This module provides a list of handy DefId for the engine. The list of DefIds comes from the crate /engine/names: any name mentionned in that crate will be provided here automatically.
ocaml_engine
This module implements an interface to the OCaml hax engine. Via this interface, the rust engine can communicate with the OCaml engine, and reuse some of its components.
phase
A phase rewrites the AST.
printer
Printer infrastructure: allocators, traits, and the printing pipeline.
resugarings
The “resugaring” phases used by printers. This module defines resugarings instances (see [hax_rust_engine::ast::Resugaring] for the definition of a resugaring). Each backend defines its own set of resugaring phases.
symbol
Interned string identifiers used throughout the AST.

Macros§

impl_doc_allocator_for
Implements pretty::DocAllocator<'a, A> for a local types that already implement HasAllocator<'a, A>.
install_pretty_helpers
Install pretty-printing helpers partially applied with a given local allocator.
setup_error_handling_impl
Use this macro in an implementation of AstVisitorMut to get automatic spans and error handling.
todo_document
Similar to std::todo, but returns a document instead of panicking with a message. In addition, todo_document! accepts a prefix to point to a specific issue number.