Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support/borsh: Replace the unsafety with generic_const_exprs when #418

Open
github-actions bot opened this issue Dec 24, 2024 · 0 comments
Open

support/borsh: Replace the unsafety with generic_const_exprs when #418

github-actions bot opened this issue Dec 24, 2024 · 0 comments
Assignees
Labels
to do To be done tracker Issue tracked by bot

Comments

@github-actions
Copy link

On 2024-12-24 @prestwich wrote in e94bb80 “Merge pull request #416 from rtrombone/borsh”:

Replace the unsafety with generic_const_exprs when
available

    fn deserialize_reader<R: io::Read>(reader: &mut R) -> io::Result<Self> {
        // This is a bit of an end-run around missing `generic_const_exprs`
        // We cannot declare a `[u8; Self::BYTES]` or `[u8; LIMBS * 8]`,
        // so we declare a `[u8; LIMBS]` and use unsafe to write to it.

        // TODO: Replace the unsafety with `generic_const_exprs` when
        // available
        let mut limbs = [0u64; LIMBS];

        // SAFETY: `limbs` is known to have identical memory layout and
        // alignment to `[u8; LIMBS * 8]`, which is guaranteed to safely
        // contain  [u8; Self::BYTES]`, as `LIMBS * 8 >= Self::BYTES`.

From src/support/borsh.rs:16

@github-actions github-actions bot added to do To be done tracker Issue tracked by bot labels Dec 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
to do To be done tracker Issue tracked by bot
Projects
None yet
Development

No branches or pull requests

1 participant