# Config
max_history_size
# Current session
* we should remember (index) of the first line inserted by this session.
- if no line has been inserted => do nothing on save
- reset this index after saving successfully.
* we should remember (path and timestamp) of the file used to initialize/`load` history.
- if path used to save history is the same:
+ if timestamp is still the same => we can append only new lines if history has not been truncated.
+ update timestamp after saving successfully.
* we should remember (path and timestamp) of the file used to persist/`save` history.
- reset them if `load` is then called with a different path
- update them if `load` is then called with same path.
- update them after saving successfully
- if path used to save history is the same:
+ if timestamp is still the same => we can append only new lines if history has not been truncated.
```
HistoryInfo
first_add_index: Option<usize>, // first line inserted by this session
truncated: bool //
path_info: Option<PathInfo>,
```
```
PathInfo
path: Path,
modified: SystemTime,
```
---
With `termwiz`, you can define your own `History` backend.
`termwiz` does not specify anything how the history is persisted.
Only how to access / search history entry.