pub trait StoreIndex: Send + Sync {
type Error: Error + Send + Sync + 'static;
// Required methods
fn contains_key(&self, key: &str) -> Result<bool, Self::Error>;
fn get_bytes(&self, key: &str) -> Result<Option<Vec<u8>>, Self::Error>;
fn keys(&self) -> Result<Vec<String>, Self::Error>;
fn len(&self) -> Result<usize, Self::Error>;
fn is_empty(&self) -> Result<bool, Self::Error>;
fn update_index(
&mut self,
log: &Log,
entries: &[Entry],
) -> Result<(), Self::Error>;
fn clear(&mut self) -> Result<(), Self::Error>;
// Provided methods
fn get_entries_range(
&self,
_start: usize,
_end: usize,
) -> Option<Vec<Entry>> { ... }
fn get_last_entries(&self, _count: usize) -> Option<Vec<Entry>> { ... }
fn get_entry_by_cid(&self, _cid: &Cid) -> Option<Entry> { ... }
fn supports_entry_queries(&self) -> bool { ... }
}Expand description
Index contém o estado atual de uma store. Ele processa o log de
operações (OpLog) para construir a visão mais recente dos dados,
implementando a lógica do CRDT.
Required Associated Types§
Required Methods§
Sourcefn contains_key(&self, key: &str) -> Result<bool, Self::Error>
fn contains_key(&self, key: &str) -> Result<bool, Self::Error>
Verifica se uma chave existe no índice. Método seguro que não requer acesso aos dados em si.
Sourcefn get_bytes(&self, key: &str) -> Result<Option<Vec<u8>>, Self::Error>
fn get_bytes(&self, key: &str) -> Result<Option<Vec<u8>>, Self::Error>
Retorna uma cópia dos dados para uma chave específica como bytes. Método seguro que funciona com qualquer implementação de sincronização.
Sourcefn keys(&self) -> Result<Vec<String>, Self::Error>
fn keys(&self) -> Result<Vec<String>, Self::Error>
Retorna todas as chaves disponíveis no índice. Útil para iteração e operações de listagem.
Provided Methods§
Sourcefn get_entries_range(&self, _start: usize, _end: usize) -> Option<Vec<Entry>>
fn get_entries_range(&self, _start: usize, _end: usize) -> Option<Vec<Entry>>
Retorna um range de entradas completas (se suportado pelo índice).
Este método opcional permite que índices que mantêm Entry completas exponham acesso direto otimizado para queries de range.
§Argumentos
start- Índice inicial (inclusivo)end- Índice final (exclusivo)
§Retorna
Some(Vec<Entry>) se o índice suporta acesso direto a Entry
None se o índice não suporta ou range inválido
§Performance
- O(1) para validação de range
- O(end - start) para coleção dos resultados
- Evita deserialização de bytes para Entry
Sourcefn get_entry_by_cid(&self, _cid: &Cid) -> Option<Entry>
fn get_entry_by_cid(&self, _cid: &Cid) -> Option<Entry>
Sourcefn supports_entry_queries(&self) -> bool
fn supports_entry_queries(&self) -> bool
Verifica se o índice suporta queries otimizadas com Entry completas.
Permite que o código cliente determine se pode usar os métodos opcionais de otimização.
Implementors§
Source§impl StoreIndex for BaseIndex
Implementação do trait StoreIndex para BaseIndex.
impl StoreIndex for BaseIndex
Implementação do trait StoreIndex para BaseIndex.
type Error = GuardianError
Source§impl StoreIndex for NoopIndex
Implementação do trait StoreIndex para NoopIndex.
Aqui é onde a lógica “vazia” é definida.
impl StoreIndex for NoopIndex
Implementação do trait StoreIndex para NoopIndex.
Aqui é onde a lógica “vazia” é definida.
type Error = GuardianError
Source§impl StoreIndex for DocumentIndex
impl StoreIndex for DocumentIndex
type Error = GuardianError
Source§impl StoreIndex for EventIndex
Implementação do trait StoreIndex para EventIndex.
impl StoreIndex for EventIndex
Implementação do trait StoreIndex para EventIndex.