Como criar um pacote em Rust que contém uma biblioteca (lib) e um executável (bin)?
Olá a todos! Comecei a estudar Rust recentemente e estou tentando entender a organização de projetos. Tenho uma tarefa: quero escrever uma pequena utilitário para trabalhar com arquivos CSV. Mas quero que a lógica principal (parsing, filtragem) possa ser reutilizada em outros projetos como uma biblioteca.
Atualmente, meu projeto está assim:
```
my_project/
├── Cargo.toml
├── src/
│ └── main.rs
```
Em `main.rs`, escrevi tanto o parsing quanto a exibição dos resultados. Isso é inconveniente: se eu quiser usar o mesmo parser em outro projeto, terei que copiar o código.
Li que em Rust é possível criar um pacote que contém tanto `lib.rs` (biblioteca) quanto `main.rs` (binário). Mas não entendo como configurar isso corretamente. No `Cargo.toml`, não vejo instruções explícitas. Como o Cargo sabe que tenho dois arquivos alvo? Posso chamar funções de `lib.rs` a partir de `main.rs`? E como organizar a estrutura de pastas corretamente? Preciso especificar algo no `Cargo.toml`?
Por favor, me digam como fazer isso corretamente. Exemplo: