# `Calque.Snapshot`
[🔗](https://github.com/milaneuh/calque/blob/main/lib/snapshot.ex#L1)

Represents a **snapshot** — a saved version of output data used by Calque’s
snapshot testing system.

A snapshot encapsulates:
- `:title` — A human-readable identifier, often matching the test name.
- `:content` — The stringified output captured during the test run.
- `:status` — Either `:new` (freshly generated and unreviewed) or `:accepted`
  (already validated and stored).

This module provides simple constructors to ensure consistent initialization:
- `new/2` — Creates a new, unaccepted snapshot.
- `accepted/2` — Builds an accepted snapshot loaded from disk.

Snapshots are immutable data structures; their lifecycle and comparison logic
are handled by higher-level modules such as `Calque` and `Calque.Diff`.

# `t`
[🔗](https://github.com/milaneuh/calque/blob/main/lib/snapshot.ex#L23)

```elixir
@type t() :: %Calque.Snapshot{
  content: String.t(),
  source: String.t() | nil,
  status: :new | :accepted,
  title: String.t()
}
```

# `accepted`
[🔗](https://github.com/milaneuh/calque/blob/main/lib/snapshot.ex#L36)

```elixir
@spec accepted(String.t(), String.t(), String.t() | nil) :: t()
```

# `new`
[🔗](https://github.com/milaneuh/calque/blob/main/lib/snapshot.ex#L31)

```elixir
@spec new(String.t(), String.t(), String.t()) :: t()
```

---

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