Skip to content

Tracker: rand_core v0.10 #13

@dhardy

Description

@dhardy

This issue tracks breaking changes for rand_core v0.10 and other potential changes for v1.0.

Breaking changes scheduled for v0.10:

Problematic/blocked changes (more likely to hit v2.0 than v1.0):

  • Can we merge BlockRng64 and BlockRng with impl<R: BlockRngCore<Item = u64>> RngCore for BlockRng<R>? No; firstly because Rust does not yet recognise that R: BlockRngCore<Item = u32> is distinct from R: BlockRngCore<Item = u64> and secondly because BlockRng64 has a half_used field. See Reduce block code #34.
  • Can we replace usages of UnwrapMut with UnwrapErr<&mut Self>? It appears not since we don't have impl<R: TryRngCore> TryRngCore for &mut R (see next item). See Let RngCore: TryRngCore<Error = Infallible> #45, Remove fn unwrap_mut #53.
  • Can we have impl<R: RngCore> RngCore for &mut R? No; it conflicts with impl<R: RngCore + ?Sized> TryRngCore for R since Rust does not yet support overlapping blanket impls (e.g. specialisation). See Let RngCore: TryRngCore<Error = Infallible> #45.

Other possible changes:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions