Como criar um pacote no Cargo que contém tanto uma biblioteca quanto um executável?
Olá a todos! Estou começando a aprender Rust e tentando organizar meu projeto. Tenho alguma lógica que quero reutilizar: por exemplo, funções para trabalhar com números (fatorial, números de Fibonacci). Quero fazer com que essas funções estejam disponíveis como uma biblioteca (para que possam ser importadas em outros projetos via `use`), mas também ter um arquivo executável (binário) que execute e demonstre o funcionamento dessas funções pelo console.
Criei o projeto com `cargo new my_project`, e ele criou apenas `src/main.rs`. Li que é possível adicionar `src/lib.rs`, mas como configurar corretamente o `Cargo.toml`? Preciso escrever algo como `[lib]` ou `[[bin]]`? E como executo exatamente o binário, se quero usá-lo, e a biblioteca — importá-la em outros crates?
Aqui está um exemplo do que estou tentando fazer:
```rust
// src/lib.rs
pub fn factorial(n: u64) -> u64 {
(1..=n).product()
}
```
```rust
// src/main.rs
mod lib; // isso funciona?
fn main() {