scrin 0.1.84

A terminal UI toolkit with panes, widgets, overlays, animations, and Aisling-powered effects/loaders.
Documentation
# Scrin 0.1.84 Release Notes

Made by KnottDynamics.

This release adds opt-in presenter and buffer APIs for latency-sensitive terminal applications. The existing drawing APIs remain intact, while hot paths can now inspect changed style runs, stream diffs directly to a writer, and present already-rendered Scrin buffers.

## Direct Presentation

- Added `write_diff_to(...)` to stream diff ANSI output directly to any `std::io::Write` target without building an intermediate ANSI `String`.
- Added `write_full_to(...)` for direct full-buffer output.
- Added `PresentStats` with byte, dirty-cell, area, and full-repaint counts for direct writer calls.
- Added `Terminal::present_direct_timed(...)`, `present_area_direct_timed(...)`, and `present_areas_direct_timed(...)` as opt-in no-intermediate-string terminal presenters.

## Style-Run Diff APIs

- Added `DiffRun`, `DiffRuns`, `DiffText`, and `DiffTextChars`.
- Added `diff_runs(...)` and `diff_runs_for_areas(...)` to iterate changed runs as `{ x, y, style, text }`.
- Diff runs group contiguous changed cells with the same `CellStyle` and preserve wide-glyph continuation handling.

## Already-Rendered Buffers

- Added `Terminal::present_buffer_timed(...)` for presenting a full-size buffer rendered outside a frame closure.
- Added `Terminal::present_buffer_areas_timed(...)` for area-limited presentation of an already-rendered buffer.

## Buffer Hot Paths

- Added `CellStyle`, `Cell::styled(...)`, and `Cell::style()`.
- Added safe skip metadata exposure with `Buffer::skip_cells()` and `Buffer::cells_with_skip()`.
- Added `Buffer::has_wide_glyphs()` for downstream fast-path decisions.
- Added styled bulk helpers: `set_str_styled(...)`, `fill_styled(...)`, and `fill_cell(...)`.
- Added fast simple paths: `set_str_styled_fast_ascii(...)`, `fill_styled_fast_ascii(...)`, and `fill_cell_fast(...)`.
- Tightened wide-glyph replacement so stale continuation-cell metadata is cleared when overwriting wide glyphs.

## Docs And Packaging

- Updated README, crate docs, crate-root exports, changelog, and this release note for the new performance APIs.