Implement core::error::Error for ParsingError #28
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This continues the discussion in #27.
Regarding cole14's last comment, this does work in my use case. However, implementing the trait
core::error::Error
instead ofstd::error::Error
appears to be an experimental feature, which can only be used with nightly Rust.For this reason, I've taken the liberty to add a new optional and non-default feature to the crate,
nightly
, since apparently it's not possible to deduce the release channel at compile time. Now:std
feature is enabled, the original code is compiled.std
feature is not enabled and thenightly
feature is enabled, the experimental feature#![feature(error_in_core)]
is used, and a similar† branch of the original code is compiled, one that substitutesstd
withcore
and does not matchParseError::IOError
, which is only available withstd
.† Maybe there's a better way to do this? I haven't looked extensively at the Rust preprocessor. Is there a
#define
-like capability?