Skip to main content

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.
attributes
Work with hax attributes.
backends
Code generation backends.
debugger
An interactive debugger server for the rust engine.
hax_io
This module helps communicating with cargo-hax.
import_thir
This modules allows to import the THIR AST produced by the frontend, and convert it to the engine’s internal AST
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§

install_pretty_helpers
Install pretty-printing helpers partially applied with a given local allocator.
pretty_ast_docs
Expand a list of values into documents and concatenate them in order.
pretty_ast_intersperse
Convert a collection of values into documents separated by another document.
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.