`rustix::io::Errno` impl `core::error::Error` only with nightly

Aberta
#1,527 0 comentários 1 reação 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
52/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
rust

Direção de pesquisa

Comece reproduzindo o exemplo no_std de main.rs com a dependência rustix em Cargo.toml e, em seguida, inspecione a verificação da feature error_in_core em build.rs. Confirme o comportamento no Rust 1.81 ou posterior e verifique se cargo build reconhece que Errno implementa core::error::Error sem exigir nightly.

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

Descrição

Support for error_in_core in no_std context was added in https://github.com/bytecodealliance/rustix/pull/1241 But it seems the use_feature_or_nothing("error_in_core"); check in build.rs requires nightly even with rust 1.81+.

❯ rustc --version
rustc 1.85.0 (4d91de4e4 2025-02-17)

Cargo.toml

[package]
name = "error"
version = "0.1.0"
edition = "2024"

[dependencies]
rustix = { version = "1.1.2", default-features = false }

main.rs

#![no_std]

use rustix::io::Errno;

use core::error::Error;

fn use_err<E: Error>(err: E) {}

fn main() {
    use_err(Errno::ACCESS);
}

cargo build

error[E0277]: the trait bound `Errno: core::error::Error` is not satisfied
  --> src/main.rs:10:13
   |
10 |     use_err(Errno::ACCESS);
   |     ------- ^^^^^^^^^^^^^ the trait `core::error::Error` is not implemented for `Errno`
   |     |
   |     required by a bound introduced by this call
   |
note: required by a bound in `use_err`
  --> src/main.rs:7:15
   |
7  | fn use_err<E: Error>(err: E) {}
   |               ^^^^^ required by this bound in `use_err`
Linguagem predominante
Rust
Estrelas
2.1k
Forks
322
Merge médio
5d 16h
PRs com merge (30d)
9

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 bytecodealliance/rustix

Todas as issues de bytecodealliance/rustix

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.