# `RustQ.Meta.Options`
[🔗](https://github.com/elixir-crab/rustq/blob/v1.0.0-rc.19/lib/rustq/meta/options.ex#L1)

The options `use RustQ.Meta` accepts: `:rust_sources`, `:provides`, `:rust_packages`,
`:callable_modules`, and `:static_types`.

# `t`

```elixir
@type t() :: %{
  optional(:provides) =&gt; [Path.t()],
  rust_sources: [Path.t()] | {:quoted, Macro.t()},
  rust_packages: [RustQ.Binding.Source.rust_package()],
  callable_modules: [module()],
  static_types: keyword(Macro.t())
}
```

# `option_names`

```elixir
@spec option_names() :: [atom()]
```

The names of the options `use RustQ.Meta` accepts.

# `rust_source_paths!`

```elixir
@spec rust_source_paths!(term()) :: [Path.t()]
```

Returns `rust_sources` given as an expression, such as `[@source]`, once the module body
has evaluated it. Relative paths are relative to the working directory.

# `validate!`

```elixir
@spec validate!(
  keyword(),
  Macro.Env.t()
) :: t()
```

Validates and normalizes options passed to `use RustQ.Meta`.

# `validate_callable_modules`

# `validate_provides`

# `validate_rust_packages`

# `validate_rust_sources`

# `validate_static_types`

---

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