# `Minga.Buffer.RenderSnapshot`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga/buffer/render_snapshot.ex#L1)

All data needed to render a single frame for one buffer.

Constructed atomically inside `BufferServer.handle_call/3` so the
caller gets a consistent snapshot of cursor, lines, metadata, and
version in a single GenServer round-trip. Previously a bare map;
promoted to a struct for compile-time field enforcement and better
type-system support.

# `t`

```elixir
@type t() :: %Minga.Buffer.RenderSnapshot{
  buffer_type: Minga.Buffer.State.buffer_type(),
  cursor: Minga.Buffer.Document.position(),
  dirty: boolean(),
  file_path: String.t() | nil,
  filetype: atom(),
  first_line_byte_offset: non_neg_integer(),
  line_count: pos_integer(),
  lines: [String.t()],
  name: String.t() | nil,
  read_only: boolean(),
  version: non_neg_integer()
}
```

---

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