If we do this,
There isn't a lot of functionality in rand_core which is enabled by the std feature, but there is a little:
rand_core::Error::take_error is defined
rand_core::Error implements std::error::Error
std::io::Error implements From<rand_core::Error>
RngCore implements std::io::Read
Of course, this is potentially a breaking change, so we should bump the version number to 0.4.0 and have a shim 0.3 → 0.4 which still enables std by default — except, since the change is unlikely to cause much breakage and we are already breaking some builds, I wonder if it is worth it?
If we do this,
rand_coremight have issues (if they don't request thestdfeature and try to use missing functionality)rand_core(i.e. users ofrandetc.) shouldn't notice any differences, so long as the direct dependencies use the feature correctlyrand0.5 andrand0.6 with default features turned off in the crate graph results in a compliation error #645, where the build happens to requirestdinrand_core(likely accidentally) but not inrandThere isn't a lot of functionality in
rand_corewhich is enabled by thestdfeature, but there is a little:rand_core::Error::take_erroris definedrand_core::Errorimplementsstd::error::Errorstd::io::ErrorimplementsFrom<rand_core::Error>RngCoreimplementsstd::io::ReadOf course, this is potentially a breaking change, so we should bump the version number to 0.4.0 and have a shim 0.3 → 0.4 which still enables
stdby default — except, since the change is unlikely to cause much breakage and we are already breaking some builds, I wonder if it is worth it?