1 /** <lambda>null2 * Copyright (C) 2024 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 * in compliance with the License. You may obtain a copy of the License at 6 * 7 * ``` 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * ``` 10 * 11 * Unless required by applicable law or agreed to in writing, software distributed under the License 12 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 * or implied. See the License for the specific language governing permissions and limitations under 14 * the License. 15 */ 16 package com.android.healthconnect.testapps.toolbox.utils 17 18 import java.io.ByteArrayInputStream 19 import java.io.ByteArrayOutputStream 20 import java.io.ObjectInputStream 21 import java.io.ObjectOutputStream 22 import java.io.Serializable 23 24 internal fun Serializable.serialize(): ByteArray = 25 ByteArrayOutputStream().use { output -> 26 ObjectOutputStream(output).use { it.writeObject(this) } 27 output.toByteArray() 28 } 29 deserializenull30internal fun <T : Serializable> ByteArray.deserialize(): T = 31 ByteArrayInputStream(this).use { input -> 32 ObjectInputStream(input).use { 33 @Suppress("UNCHECKED_CAST") 34 it.readObject() as T 35 } 36 } 37