RecoveringSaver

fun <T> RecoveringSaver(delegate: Saver<T>, recover: suspend (Exception) -> T?): Saver<T>

Saver that also catches exceptions during delegate's Saver.save and Saver.restore and handles them using recover.

This will fallback to the deprecated Saver.recover if recover returns null. Library-provided savers do not use the deprecated method.

Return null from recover to not restore / save the state, or a fallback value.