FLag que nao acaba
Ontem refatorei meu código de acordo com as especificações de flags desta documentação:
Isso simplificou muito meu parsing e está facilitando a correção de bugs.
Esta é a melhor documentação sobre sinalizadores de printf que eu encontrei
até agora e gostaria de tê-lo encontrado antes.
A comunidade também está ajudando e estou conseguindo fazer progresso.
Achei este artigo incrível sobre como Discord usou Rust para estender Elixir e otimizar seu sistema de notificação:
Eles queriam enviar notificações apenas para usuários online, e precisavam de um estrutura de dados que poderia facilmente armazenar o status atual de cada usuário em um canal. Esta estrutura tinha quse ser otimizada para inserções (para facilmente trocar o status do usuário) e pesquisas (para obter rapidamente todos os usuários online).
Eles compararam algumas das estruturas internas de Elixir e Erlang, mas nenhuma
performava de accordo com suas necessidades.
Eles decidiram implementar Skip Lists em Rust e compilá-los com a BEAM
(Máquina virtual do Erlang) como seu alvo.
Eles usaram uma biblioteca Rust chamada rustler para unir o Rust com a BEAM.
Isso me deixou muito animado para aprender Elixir, pois parece ser fácilmente extensível com código Rust.
Hoje vou continuar trabalhando no printf. Continuo reestruturando o parser das flags e do print de inteiros: já está passando na metade dos testes mas ainda estou lidando com combinações de flags.