com.yahoo.tensor.serialization.BinaryFormat Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of vespajlib Show documentation
Show all versions of vespajlib Show documentation
Library for use in Java components of Vespa. Shared code which do
not fit anywhere else.
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.tensor.serialization;
import com.yahoo.io.GrowableByteBuffer;
import com.yahoo.tensor.Tensor;
import com.yahoo.tensor.TensorType;
import java.util.Optional;
/**
* Representation of a specific binary format with functions for serializing a Tensor object into
* this format or de-serializing binary data into a Tensor object.
*
* @author geirst
*/
interface BinaryFormat {
/**
* Serialize the given tensor into binary format.
*/
void encode(GrowableByteBuffer buffer, Tensor tensor);
/**
* Deserialize the given binary data into a Tensor object.
*
* @param type the expected abstract type of the tensor to serialize, or empty to use type information from the data
* @param buffer the buffer containing the tensor binary data
*/
Tensor decode(Optional type, GrowableByteBuffer buffer);
}