# `KiwiCodec.RustlerGenerator.Entrypoint`
[🔗](https://github.com/open-pencil/kiwi_codec/blob/v0.7.0/codegen/kiwi_codec/rustler_generator/entrypoint.ex#L2)

Generates NIFs decoding a binary as one definition, which `kiwi_decode_binary` does with
the definition's full decoder, rejecting trailing bytes.

# `__mix_recompile__?`

Whether the module's Rust file appeared or went since the module compiled.

# `__rustq_asts__`

The RustQ AST of each `defrust` definition.

# `__rustq_callables__`

Callable metadata for the module's definitions.

# `__rustq_items__`

The Rust items the module generates, in order.

# `__rustq_macro_definitions__`

The module's `defrustmacro` definitions.

# `__rustq_macro_items__`

The `macro_rules!` items `defrustmacro` emits.

# `__rustq_rust_modules__`

The Rust modules the module's `defrustmod`s map its aliases, or itself (`[]`), to.

# `__rustq_source__`

The Rust source the module generates.

# `__rustq_type_asts__`

The RustQ AST of each declared Rust type.

# `__rustq_type_items__`

The Rust items the module's types generate.

# `__rustq_types__`

The Rust types the module's `@type`s declare.

# `fragments`

```elixir
@spec fragments([{atom() | String.t(), String.t()}]) :: [RustQ.Rust.Fragment.t()]
```

`kiwi_decode_binary`, and a NIF for each `{nif_name, definition_name}`.

# `kiwi_decode_binary`

```elixir
@spec kiwi_decode_binary(
  RustQ.Type.path(:Env, RustQ.Type.lifetime(:a)),
  RustQ.Type.path(:Binary),
  RustQ.Type.path(:KiwiDecodeFn)
) :: RustQ.Type.nif_result(term())
```

A Rust function `defrust` generates. It runs only as Rust; calling it from Elixir
raises.

---

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