-
-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
This issue tracks breaking changes for rand_core v0.10 and other potential changes for v1.0.
Breaking changes scheduled for v0.10:
- Bump MSRV and Edition for
rand_corerand#1668 - Move rand_core::impls::* to le rand#1667
- Move fn read_adapter out of trait TryRngCore rand#1669
- Move OsRng down to rand rand#1674
- Simplify trait BlockRngCore and rename to Generator #26
- Remove optional feature serde #28
- Reduce block code #34
- Replace mod
lewithutils#38 - Revise index / reset / skip methods #44
- Let
RngCore: TryRngCore<Error = Infallible>#45 - Support
?Sizedtypes inRng*: TryRng*blanket impls #51 - Remove fn unwrap_mut #53
- Rename
(Try)RngCoreto(Try)Rng#54 - Use
core::error::Errorbound forTryRng::Error#58
Problematic/blocked changes (more likely to hit v2.0 than v1.0):
- Can we merge
BlockRng64andBlockRngwithimpl<R: BlockRngCore<Item = u64>> RngCore for BlockRng<R>?No; firstly because Rust does not yet recognise thatSee Reduce block code #34.R: BlockRngCore<Item = u32>is distinct fromR: BlockRngCore<Item = u64>and secondly becauseBlockRng64has ahalf_usedfield. - Can we replace usages of
UnwrapMutwithUnwrapErr<&mut Self>?It appears not since we don't haveSee Letimpl<R: TryRngCore> TryRngCore for &mut R(see next item).RngCore: TryRngCore<Error = Infallible>#45, Remove fn unwrap_mut #53. - Can we have
impl<R: RngCore> RngCore for &mut R?No; it conflicts withSee Letimpl<R: RngCore + ?Sized> TryRngCore for Rsince Rust does not yet support overlapping blanket impls (e.g. specialisation).RngCore: TryRngCore<Error = Infallible>#45.
Other possible changes:
- Rename Rng -> RngExt, RngCore -> Rng rand#1288
- rand_core: introduce
Seedtrait rand#1670 - Further
blockmodule revisions. Little motivation in my opinion. - Tracker: proposed RngCore changes rand#1261
Snowiiii
Metadata
Metadata
Assignees
Labels
No labels