RustQ.Meta.AST (rustq v1.0.0-rc.6)

Copy Markdown View Source

Builds RustQ AST items from defrust metadata and explicit quoted bodies.

Summary

Functions

Returns one generated Rust enum type item by name, raising on absence or kind mismatch.

Returns one generated defrust function AST by name, raising when absent.

Returns all generated defrust function AST nodes from a compiled module.

Returns selected generated defrust function AST nodes.

Returns every generated Rust type item from a compiled RustQ module.

Returns one generated Rust implementation block for a target.

Returns every generated Rust implementation block from a compiled module.

Returns every generated Rust item from a compiled RustQ module.

Builds a structural invocation of a generated Rust item macro.

Returns one generated defrustmacro item AST by name, raising when absent.

Returns selected generated defrustmacro item AST nodes.

Returns one generated Rust struct type item by name, raising on absence or kind mismatch.

Builds Rust struct items for selected map-backed @type declarations.

Returns one generated Rust type item by name, raising when absent.

Functions

enum_type_item!(module, name)

@spec enum_type_item!(module(), atom() | String.t()) :: RustQ.Rust.AST.Enum.t()

Returns one generated Rust enum type item by name, raising on absence or kind mismatch.

function!(module, name)

@spec function!(module(), atom() | String.t()) :: RustQ.Rust.AST.Function.t()

Returns one generated defrust function AST by name, raising when absent.

functions(module)

@spec functions(module()) :: [RustQ.Rust.AST.Function.t()]

Returns all generated defrust function AST nodes from a compiled module.

Raises ArgumentError when the module does not contain compiled defrust metadata.

functions!(module, names)

@spec functions!(module(), [atom() | String.t()]) :: [RustQ.Rust.AST.Function.t()]

Returns selected generated defrust function AST nodes.

generated_type_items(module)

@spec generated_type_items(module()) :: [RustQ.Rust.AST.item()]

Returns every generated Rust type item from a compiled RustQ module.

impl!(module, target, opts \\ [])

@spec impl!(module(), atom() | String.t() | [atom() | String.t()], keyword()) ::
  RustQ.Rust.AST.Impl.t()

Returns one generated Rust implementation block for a target.

Pass trait: Name to select a trait implementation. Without :trait, only inherent implementations match. Raises when no implementation matches or when the selector is ambiguous.

impls(module)

@spec impls(module()) :: [RustQ.Rust.AST.Impl.t()]

Returns every generated Rust implementation block from a compiled module.

items(module)

@spec items(module()) :: [RustQ.Rust.AST.item()]

Returns every generated Rust item from a compiled RustQ module.

This is the public structural accessor for generated type declarations, functions, modules, and implementation blocks.

macro_call!(module, name, args)

@spec macro_call!(module(), atom() | String.t(), keyword()) ::
  RustQ.Rust.AST.MacroItemCall.t()

Builds a structural invocation of a generated Rust item macro.

macro_item!(module, name)

@spec macro_item!(module(), atom() | String.t()) :: RustQ.Rust.AST.MacroItem.t()

Returns one generated defrustmacro item AST by name, raising when absent.

macro_items!(module, names)

@spec macro_items!(module(), [atom() | String.t()]) :: [RustQ.Rust.AST.MacroItem.t()]

Returns selected generated defrustmacro item AST nodes.

struct_type_item!(module, name)

@spec struct_type_item!(module(), atom() | String.t()) :: RustQ.Rust.AST.Struct.t()

Returns one generated Rust struct type item by name, raising on absence or kind mismatch.

struct_type_items(module, names, opts \\ [])

@spec struct_type_items(module(), [atom()], keyword()) :: [RustQ.Rust.AST.Struct.t()]

Builds Rust struct items for selected map-backed @type declarations.

Use :derive, :attrs, and :vis to adapt the structural type item at a boundary such as Rustler encoding without duplicating its fields.

type_item!(module, name)

@spec type_item!(module(), atom() | String.t()) :: RustQ.Rust.AST.item()

Returns one generated Rust type item by name, raising when absent.