CavalliumDBEngine/src/main/java/it/cavallium/dbengine/lucene/BytesRefCodec.java

30 lines
733 B
Java
Raw Normal View History

2021-10-15 22:03:53 +02:00
package it.cavallium.dbengine.lucene;
import io.netty5.buffer.api.Buffer;
2021-10-15 22:03:53 +02:00
import java.util.function.Function;
import org.apache.lucene.util.BytesRef;
public class BytesRefCodec implements HugePqCodec<BytesRef> {
2021-10-15 22:03:53 +02:00
@Override
public Buffer serialize(Function<Integer, Buffer> allocator, BytesRef data) {
2021-10-15 22:03:53 +02:00
var buf = allocator.apply(data.length + Integer.BYTES);
buf.writeInt(data.length);
buf.writeBytes(data.bytes, data.offset, data.length);
return buf;
}
@Override
public BytesRef deserialize(Buffer b) {
2021-10-15 22:03:53 +02:00
var length = b.readInt();
var bytes = new byte[length];
b.readBytes(bytes, 0, length);
return new BytesRef(bytes, 0, length);
}
@Override
public BytesRef clone(BytesRef obj) {
return obj.clone();
}
2021-10-15 22:03:53 +02:00
}