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


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

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



```kotlin
public interface Saver<Original, Saveable : Any>
```


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`.


## Functions



<h2 id="save-value">save</h2>

```kotlin
public fun SaverScope.save(value: Original): Saveable?
```


Convert the value into a saveable one. If null is returned the value will not be saved.




<hr class="docs-overload-divider">


<h2 id="restore-value">restore</h2>

```kotlin
public fun restore(value: Saveable): Original?
```


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.