Lowers calls to Elixir's standard library to Rust that keeps their semantics: a call to an
Elixir module goes to the module lowering it, named after it (RustQ.Meta.Lower.Enum for
Enum), which implements RustQ.Meta.Lower.Stdlib.Lowering. Calls whose semantics Rust
cannot preserve are rejected.
Summary
Functions
@spec lower(Macro.t(), RustQ.Meta.Lower.Stdlib.Lowering.Context.t()) :: {:ok, term()} | :unsupported
@spec lower!(Macro.t(), RustQ.Meta.Lower.Stdlib.Lowering.Context.t()) :: term()
@spec synth(Macro.t(), RustQ.Meta.Lower.Stdlib.Lowering.TypeContext.t()) :: {:ok, term()} | :unsupported