# `RustQ.Rustler.Resource`
[🔗](https://github.com/dannote/rustq/blob/v0.11.1/lib/rustq/rustler/resource.ex#L1)

Generates Rustler resource structs, handles, decoders, and initialization helpers.

# `arc_type`

```elixir
@spec arc_type(atom() | String.t()) :: RustQ.Rust.AST.TypePath.t()
```

Builds the `ResourceArc<name>` type.

# `decoder`

```elixir
@spec decoder(
  atom() | String.t(),
  keyword()
) :: RustQ.Rust.AST.Function.t()
```

Builds a decoder for `ResourceArc<name>`.

# `handle_decoder`

```elixir
@spec handle_decoder(
  atom() | String.t(),
  keyword()
) :: RustQ.Rust.AST.Function.t()
```

Builds a decoder for an Elixir-facing resource handle.

# `handle_items`

```elixir
@spec handle_items(
  atom() | String.t(),
  keyword()
) :: [RustQ.Rust.AST.item()]
```

Builds resource items plus a decoder for an Elixir-facing handle.

# `init`

```elixir
@spec init(atom() | String.t()) :: RustQ.Rust.AST.MacroItemCall.t()
```

Builds the resource registration macro invocation.

# `items`

```elixir
@spec items(
  atom() | String.t(),
  keyword()
) :: [RustQ.Rust.AST.Struct.t() | RustQ.Rust.AST.Impl.t()]
```

Builds the resource struct and its `rustler::Resource` implementation.

# `type_alias`

```elixir
@spec type_alias(
  atom() | String.t(),
  keyword()
) :: RustQ.Rust.AST.TypeAlias.t()
```

Builds a type alias for `ResourceArc<name>`.

---

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