fn restore_using<R: SnapshotReader>(
    snapshot: Arc<SnapshotService>,
    reader: &R,
    recover: bool
) -> Result<(), String>