<div class='type'>Function</div>


<a id='references'></a>


<h2 id="saver-save-restore">Saver</h2>

<div class='sourceset sourceset-common'>Common</div>


```kotlin
public fun <Original, Saveable : Any> Saver(
    save: SaverScope.(value: Original) -> Saveable?,
    restore: (value: Saveable) -> Original?,
): Saver<Original, Saveable>
```


The `Saver` describes how the object of `Original` class can be simplified and converted into
something which is `Saveable`.

What types can be saved is defined by `SaveableStateRegistry`, by default everything which can be
stored in the Bundle class can be saved. The implementations can check that the provided value
can be saved via `SaverScope.canBeSaved`

You can pass the implementations of this class as a parameter for `rememberSaveable`.

#### Parameters

| | |
| --- | --- |
| save | Defines how to convert the value into a saveable one. If null is returned the value will not be saved. |
| restore | Defines how to convert the restored value back to the original Class. If null is returned the value will not be restored and would be initialized again instead. |