Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Propagate per-entry errors from Path.list!

Fechada
#440 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
64/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Pouca atividade
Stack de tecnologia
rust
Domínio
cli

Direção de pesquisa

Comece em src/lib.rs:1173-1177 e inspecione hosted_dir_list, a conversão de erros de diretório existente e o ponto de entrada Path.list!. Adicione cobertura para um erro de uma entrada de ReadDir usando uma abstração controlável ou um harness de condição de corrida do sistema de arquivos, preservando o comportamento de sucesso e o comportamento para não diretórios no Unix e no Windows.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug

Context

hosted_dir_list currently discards errors produced while iterating an otherwise successfully opened directory:

let entries = read_dir
    .filter_map(|entry| entry.ok().map(|entry| entry.path()))
    .collect();

See src/lib.rs:1173-1177.

This can return an incomplete list as Ok when an entry disappears during iteration or the filesystem reports an I/O error. Because Path.list! already returns a Try, silently returning partial data is surprising and can lead applications to make incorrect decisions.

Suggested direction

Collect the iterator as a Result<Vec<_>, io::Error> and map the first entry error through the existing directory error conversion. If partial results are considered useful, expose them through a deliberately different API and result type.

Acceptance criteria

  • An error from any ReadDir entry is not silently dropped.
  • Path.list! returns either a complete snapshot-like result or a typed error.
  • Tests exercise the error branch through a controllable abstraction or filesystem race harness.
  • Existing success and non-directory cases continue to pass on Unix and Windows.
Linguagem predominante
Rust
Estrelas
122
Forks
47
Merge médio
10h 59min
PRs com merge (30d)
21

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de roc-lang/basic-cli

Todas as issues de roc-lang/basic-cli

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.