Rullst AcademyRullst Academy/Lição
Rust II: dados, escolhas e confiança · Lição 10 / 12

Módulos e fronteiras

A oficina cresce. Separar a regra de estoque da apresentação torna mais fácil mudar uma sem espalhar detalhes da outra.

Trilhas de aprendizado10 min

Vamos descobrir juntos

  1. 1

    mod inventory { ... } cria um módulo dentro do arquivo. Itens internos são privados por padrão em relação a quem está fora do módulo. pub torna a função acessível pelo caminho do módulo.

  2. 2

    use inventory::capacity permite escrever capacity() em vez do caminho completo. use não copia código e não instala pacote algum. std é a biblioteca padrão já fornecida com Rust.

  3. 3

    Uma struct pública pode manter campos privados. Expor métodos que validam mudanças protege a regra melhor do que permitir atribuições livres de fora. Privacidade de módulo organiza código; não é autenticação de usuários.

  4. 4

    Para separar arquivos depois, mod inventory; em main.rs procura inventory.rs ou inventory/mod.rs. Nesta trilha, usamos um módulo interno para que o arquivo de código publicado sozinho continue completo.

DA LIÇÃO PARA A PRÁTICA

Guia para acompanhar no seu ritmo

Leia os passos antes de usar a referência abaixo. Comandos são executados no terminal do sistema indicado; o cadastro acontece no site oficial. Os exercícios da Rullst Academy são treino e não verificam sua instalação ou conta externa.

mod inventory { pub fn capacity() -> u16 { 20 } }
use inventory::capacity;
fn main() { println!("{}", capacity()); }

Links oficiais e próximo passo

✦
SUA MISSÃO

Usar mod, pub e use para desenhar uma pequena API.

Agora é a sua vez

Oficina de descobertas

Leia, preveja, investigue

Preveja antes de mostrar. Este painel revela resultados preparados, não compila seu código. Erros de compilação são resumidos; o texto exato pode variar com a versão do compilador.
Mini experimento

Simulação didática: compare os cartões e confira suas previsões. O navegador não está compilando Rust nem iniciando um servidor.

mod inventory { pub fn capacity() -> u16 { 20 } }
use inventory::capacity;
fn main() { println!("{}", capacity()); }
Monte suas respostas e confira quando estiver pronto.
Uma pausa para entender

O que use faz?

Preciso de uma pista

Importar um nome e instalar uma dependência são coisas diferentes.

Carregando sua jornada…

Leve com você

Mova o módulo válido para src/inventory.rs, substitua o bloco por mod inventory; e execute cargo check. No README, registre que agora os dois arquivos são necessários ao compartilhar.

RUST II · .rs

Sua bancada Rust II

Leia, preveja e responda aqui. Para compilar de verdade, extraia o ZIP da atividade em uma pasta nova, abra o terminal ao lado de Cargo.toml e use os comandos abaixo. Rust e as ferramentas do seu sistema precisam estar instalados.

cargo check --offline
cargo test --offline
cargo run --offline
Meus arquivos e GitHub

O editor abaixo salva um rascunho neste navegador e permite baixar ou publicar seu .rs. Para executá-lo no projeto, salve o arquivo editado como src/main.rs. O ZIP contém a versão inicial; os resultados preparados não mudam com suas edições. A avaliação online não comprova execução local.

No seu ritmo

Meus arquivos e GitHub

Toda lição pode virar um registro seu: código, anotações ou um plano de prática. Guardar um arquivo no GitHub é opcional e não altera seu XP.

Manual do aluno

O editor e os downloads abrem quando esta lição estiver liberada para sua conta. Confira o acesso abaixo ou volte ao mapa da trilha.

Conferindo seu acesso à lição…

Rullstpetbot

A IA pode errar. Confira no material da lição.