use std::fs::File;
use std::io::{BufReader, Read, Seek, Write};
use crate::error::Result;
pub trait ReadEmbeddings
where
Self: Sized,
{
fn read_embeddings<R>(read: &mut R) -> Result<Self>
where
R: Read + Seek;
}
pub trait ReadMetadata
where
Self: Sized,
{
fn read_metadata<R>(read: &mut R) -> Result<Self>
where
R: Read + Seek;
}
pub trait MmapEmbeddings
where
Self: Sized,
{
fn mmap_embeddings(read: &mut BufReader<File>) -> Result<Self>;
}
pub trait WriteEmbeddings {
fn write_embeddings<W>(&self, write: &mut W) -> Result<()>
where
W: Write + Seek;
fn write_embeddings_len(&self, offset: u64) -> u64;
}