Files

46 lines
1.1 KiB
Markdown

---
name: history-sink
group: api
category: sink
update-time: 20260811
description: Create a bounded in-memory sink that retains the latest structured records.
key-word:
- sink
- history
- memory
- diagnostics
---
## History-sink
Create a synchronous in-memory sink for bounded diagnostic history. It retains
the newest records and does not write to a file, console, or network endpoint.
### Interface
```moonbit
pub fn history_sink(capacity? : Int = 128) -> HistorySink
```
### Explanation
- `capacity` is normalized to at least `1`; the default keeps the latest `128`
records.
- When full, the oldest record is evicted and `dropped_count()` increases.
- `snapshot()` returns records ordered from oldest to newest. `clear()` starts a
new in-memory history session.
### How to Use
```moonbit
let history = history_sink(capacity=64)
let logger = Logger::new(history, target="desktop")
logger.info("runtime ready")
let records = history.snapshot()
```
### Notes
`HistorySink` is synchronous and application-owned. Serialize or persist a
snapshot explicitly when needed.