Skip to content
wanderleycabral-devPublic

About

Um dos projetos mais clássicos e úteis para começar em Rust, especialmente com foco em sistemas, é construir sua própria versão de uma ferramenta de linha de comando (CLI). O utilitário chamado catr (inspirado no comando cat do Unix), que simplesmente lê e imprime o conteúdo de um arquivo no terminal.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🦀 catr: Um Leitor de Arquivos Simples em Rust

Rust Logo Versão

🌟 Visão Geral

catr é um utilitário de linha de comando (Command-Line Interface - CLI) simples, inspirado no comando cat do Unix, projetado para demonstrar os fundamentos da linguagem Rust, com foco em:

  1. Manipulação de argumentos de linha de comando.
  2. Interação segura com o sistema de arquivos (std::fs).
  3. Tratamento de erros robusto usando o tipo Result<T, E> e o operador ?.

Este projeto é nosso ponto de partida no Roadmap de Sistemas em Rust.

🚀 Como Usar

Pré-requisitos

Certifique-se de ter o rustup e o cargo instalados:

curl --proto '=https' --tlsv1.2 -sSf [https://sh.rustup.rs](https://sh.rustup.rs) | sh

## Compilação e Execução

1- Clone o repositório (ou navegue até a pasta do seu projeto catr).

2- Execute o projeto usando o cargo run, passando o nome do arquivo como argumento.

```bash
# 1. Crie um arquivo de exemplo
echo -e "Linha 1: Olá, Rust!\nLinha 2: Segurança e Performance!\nLinha 3: Usabilidade!" > meu_arquivo.txt

# 2. Execute o catr
cargo run meu_arquivo.txt

Saida Esperada:

Running target/debug/catr meu_arquivo.txt Lendo arquivo: meu_arquivo.txt

--- Conteúdo do Arquivo ---

Linha 1: Olá, Rust! Linha 2: Segurança e Performance! Linha 3: Usabilidade!


🚨 Tratamento de Erros catr demonstra o tratamento de erros idiomático do Rust. Em vez de entrar em panic (pânico), ele retorna um código de erro limpo ao sistema operacional.

Exemplo de Erro 1: Arquivo Inexistente

cargo run arquivo_que_nao_existe.xyz
Running `target/debug/catr arquivo_que_nao_existe.xyz`
Lendo arquivo: arquivo_que_nao_existe.xyz
Error: Os { code: 2, kind: NotFound, message: "No such file or directory" }

Exemplo de Erro 2: Falta de Argumento

cargo run
Running `target/debug/catr`
Error: Custom { kind: InvalidInput, error: "Uso: catr <nome-do-arquivo>" }

🔑 Conceitos de Rust Demonstrados O código-fonte (src/main.rs) é pequeno, mas contém conceitos cruciais da linguagem:

Conceito Explicação Módulo
std:env Módulo usado para coletar arqumentos da linha de comnado, interagindo com o sistema. use std::env;
std:fs Módulo para operações de I/O do sistema de arquivos, como a função read_to_string. use std::fs;
Result,E> O tipo de retorno de fuynção main, garantindo que todas as falhas de I/O sejam tradas. fn main() -> Result<(),io::Error>
Operador ? Operador de propagação de erro conciso. Desempacota o valor de sucesso ou retorno o erro da função. fs::read_to_string(finame)?

Feito com 💜 e 🦀 por [Wanderley/https://github.com/wanderleycabral-dev]

About

Um dos projetos mais clássicos e úteis para começar em Rust, especialmente com foco em sistemas, é construir sua própria versão de uma ferramenta de linha de comando (CLI). O utilitário chamado catr (inspirado no comando cat do Unix), que simplesmente lê e imprime o conteúdo de um arquivo no terminal.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages