# `RustQ.Binding.Source`
[🔗](https://github.com/dannote/rustq/blob/v0.11.1/lib/rustq/binding/source.ex#L1)

Resolves callable metadata from RustQ modules, Rust source files, and Cargo packages.

This module is the source-backed callable metadata boundary used by
`RustQ.Meta`. It keeps parsing, package indexing, alias-equivalence annotation,
caching, and configuration diagnostics out of the macro frontend.

# `rust_package`

```elixir
@type rust_package() :: String.t() | {String.t(), keyword()}
```

# `external_callables`

```elixir
@spec external_callables(module()) :: [RustQ.Binding.Callable.t()]
```

Resolves external callable metadata configured on a `use RustQ.Meta` module.

# `external_static_types`

```elixir
@spec external_static_types(module()) :: %{optional(atom()) =&gt; RustQ.Meta.Type.t()}
```

Resolves external static item types configured on a `use RustQ.Meta` module.

# `rust_source_paths`

```elixir
@spec rust_source_paths([Path.t()] | Path.t() | nil) :: [Path.t()]
```

Expands Rust source paths relative to the current project working directory.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
