Expose the internal SimpleMessage
struct and allow creating std::io::Error
s with them
#205
Labels
ACP-accepted
API Change Proposal is accepted (seconded with no objections)
api-change-proposal
A proposal to add or alter unstable APIs in the standard libraries
T-libs-api
Proposal
Problem statement
I'd like a way to define lightweight custom I/O errors that don't require allocation.
Motivation, use-cases
#![no_std]
compatibility forstd::io::Error
sFor some prior art and additional motivation:
const_io_error!
is already in broad use instd
, with about 50 hits in a brief search: https://github.com/rust-lang/rust/search?q=const_io_error\bError::new\(\s*((std::)?io::)?ErrorKind::\w+\s*,\s*"
, with 14.2k results across 2.1k repos being of kindOther
: https://sourcegraph.com/search?q=context:global+/%5CbError::new%5C%28%5Cs*%28%28std::%29%3Fio::%29%3FErrorKind::Other%5Cs*%2C%5Cs*%22/+count:all+timeout:10s&patternType=standard&case=yes&sm=0&groupBy=repoSolution sketches
SimpleMessage
struct as a way to provide lightweight errors along with animpl From<&'static SimpleMessage> for Error
.const_io_error!
to simplify construction ofSimpleMessage
-based errors, and default its$kind
toErrorKind::Other
if not given.Links and related work
std::error::Error
->core::error::Error
Tracking Issue forError
incore
rust#103765 + Move Error trait into core rust#99917What happens now?
This issue is part of the libs-api team API change proposal process. Once this issue is filed the libs-api team will review open proposals in its weekly meeting. You should receive feedback within a week or two.
The text was updated successfully, but these errors were encountered: