package openmods.serializable;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import openmods.utils.io.IStreamReader;
import openmods.utils.io.IStreamSerializer;
import openmods.utils.io.IStreamWriter;
public class StreamSerializable<T> implements IStreamSerializable {
public T value;
private final IStreamWriter<T> streamWriter;
private final IStreamReader<T> streamReader;
public StreamSerializable(T value, IStreamWriter<T> streamWriter, IStreamReader<T> streamReader) {
this.value = value;
this.streamWriter = streamWriter;
this.streamReader = streamReader;
}
public StreamSerializable(T value, IStreamSerializer<T> streamSerializer) {
this.value = value;
this.streamWriter = streamSerializer;
this.streamReader = streamSerializer;
}
@Override
public void readFromStream(DataInput input) throws IOException {
value = streamReader.readFromStream(input);
}
@Override
public void writeToStream(DataOutput output) throws IOException {
streamWriter.writeToStream(value, output);
}
}