# List of Datasets
All built-in dataset types, their feature flags, and typical use cases.
## Core datasets (no feature flags)
| `Param<T>` | `T` / `()` | Read-only parameter. Error: `Infallible`. |
| `CellDataset<T>` | `T` / `T` | `no_std` intermediate storage. `T: Copy` only. |
## `std` datasets
| `MemoryDataset<T>` | `std` | `T` / `T` | Thread-safe in-memory storage via `Arc<Mutex<_>>`. |
| `TextDataset` | `std` | `String` / `String` | Reads/writes plain text files. |
| `CacheDataset<D>` | `std` | `D::LoadItem` / `D::SaveItem` | Caching wrapper for any dataset. |
## File format datasets
| `PolarsCsvDataset` | `polars` | `DataFrame` / `DataFrame` | CSV files via Polars. Configurable separator, header, etc. |
| `PolarsParquetDataset` | `polars` | `DataFrame` / `DataFrame` | Parquet files via Polars. |
| `PolarsExcelDataset` | `polars` | `DataFrame` / — | Excel files via fastexcel. Read-only. |
| `JsonDataset` | `json` | `serde_json::Value` / `serde_json::Value` | JSON files. |
| `YamlDataset` | `yaml` | `Vec<Yaml>` / `Vec<Yaml>` | YAML files using `yaml_rust2`. |
| `PlotlyDataset` | `plotly` | `serde_json::Value` / `serde_json::Value` | Plotly charts. Saves `.json` + `.html`. Custom `html()` for viz. |
| `ImageDataset` | `image` | `DynamicImage` / `DynamicImage` | Image files via the `image` crate. |
## Partitioned datasets
| `PartitionedDataset<D>` | `polars` | `HashMap<String, D::LoadItem>` / `HashMap<String, D::SaveItem>` | Directory of files, eagerly loaded. |
| `LazyPartitionedDataset<D>` | `polars` | `HashMap<String, Lazy<D::LoadItem>>` / `HashMap<String, D::SaveItem>` | Directory of files, lazily loaded on demand. |
## Hardware datasets (no_std)
| `RegisterDataset<T>` | — | `T` / `T` | Volatile memory-mapped register. `T: Copy`. |
| `GpioDataset` | — | `bool` / `bool` | Single GPIO pin within a memory-mapped register. |
## Common traits
All file-backed datasets that support `PartitionedDataset` implement `FileDataset`:
```rust,ignore
pub trait FileDataset: Dataset + Clone {
fn path(&self) -> &str;
fn set_path(&mut self, path: &str);
}
```
Implementors: `PolarsCsvDataset`, `PolarsParquetDataset`, `PolarsExcelDataset`, `TextDataset`, `JsonDataset`.