# `AshUi.Datastar.FragmentRender`
[🔗](https://github.com/hyperbob-labs/ash_ui/blob/main/lib/ash_ui/datastar/fragment_render.ex#L1)

Projects the neutral `AshUi.Rendered` algebra through the core
`AshUi.Diff` kernel into Datastar updates.

The core kernel owns fingerprints, dynamic invalidation, duplicate-key
checks, and keyed entry changes. This adapter renders the corresponding
Datastar-target element and encodes only the selector-scoped SSE operation
required to apply that result.

# `full_render`

```elixir
@spec full_render(struct(), AshUi.Patch.Table.t(), keyword()) :: binary()
```

# `initial_render`

```elixir
@spec initial_render(struct(), AshUi.Patch.Table.t(), keyword()) :: {binary(), map()}
```

# `patch`

```elixir
@spec patch(struct(), MapSet.t() | :all | struct(), AshUi.Patch.Table.t()) :: [
  AshUi.Datastar.SSE.event()
]
```

# `patch`

```elixir
@spec patch(struct(), MapSet.t() | :all | struct(), AshUi.Patch.Table.t(), keyword()) ::
  [
    AshUi.Datastar.SSE.event()
  ]
```

# `patch`

```elixir
@spec patch(struct(), struct(), list(), AshUi.Patch.Table.t(), keyword()) :: [
  AshUi.Datastar.SSE.event()
]
```

# `render`

```elixir
@spec render(
  struct(),
  MapSet.t() | :all,
  list(),
  AshUi.Patch.Table.t(),
  map(),
  keyword()
) ::
  {[AshUi.Datastar.SSE.event()], map()}
```

---

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