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 PR adds the "std" default feature, and allows the crate to be build with no_std by disabling it.
Most changes are straightforward, changing imports to use core and alloc equivalents over std. Beyond that,
std::error::Error
are conditionally replaced withcore::error::Error
. This is currently unstable, so nightly is required for no_std usage for the time being. I believe it is still not possible to build a no_std binary without nightly, so this should be an acceptable requirement.thiserror
has been replaced with a forkthiserror-core
, that supports no_std. A PR is open on the original to support it, but has yet to be merged. This library also makes use ofcore::error::Error
, and thus requires nightly when no_std is used.std::io::{Read, Write, Error, ErrorKind}
are re-exported undercrate::io
when std is enabled.crate::io
.read
orwrite
directly if needed.I've tested this in a baremetal i386 project of mine with success. Haven't tried the webassembly use case.
Resolves #15