Skip to content

[REFACTOR] Encapsular campos de EngineCore (remover pub(crate) — adicionar accessors) #154

@ElioNeto

Description

@ElioNeto

Descrição

A struct EngineCore<C> em src/core/engine/mod.rs (linha 110-116) expõe todos os seus 5 campos como pub(crate):

pub(crate) struct EngineCore<C: Cache> {
    pub(crate) memtables: HashMap<String, Vec<MemTable>>,
    pub(crate) memtable_bytes: HashMap<String, usize>,
    pub(crate) version_set: VersionSet<C>,
    pub(crate) compaction: Compaction,
    pub(crate) wal: WriteAheadLog,
}

Isso permite que qualquer módulo dentro do crate modifique diretamente o estado interno sem passar pelas invariantes do engine. Também dificulta a auditoria de segurança e a evolução da API.

Tarefas

  • Tornar todos os campos de EngineCore privados
  • Adicionar métodos accessores seguros para cada campo (ex.: memtables() -> &HashMap<...>, memtables_mut() -> &mut HashMap<...>)
  • Atualizar todos os call-sites internos para usar os accessors
  • Fazer o mesmo para MemTable se aplicável
  • Verificar que cargo test e cargo clippy passam

Referências

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions