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

WIP inline single-digit values #307

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft

Conversation

cuviper
Copy link
Member

@cuviper cuviper commented May 10, 2024

For now, this is implemented as an "inline" crate feature, because the performance tradeoffs are not clear. Some of the benchmarks in the repo are significantly faster, but there are also slowdowns probably due to the extra branching required to check the storage type. But if you want const initializers, you can opt in!

impl BigUint {
    pub const ONE: Self;
    pub const fn new_const(n: u32) -> Self;
}
impl num_traits::ConstOne for BigUint {...}

impl BigInt {
    pub const ONE: Self;
    pub const NEG_ONE: Self;
    pub const fn new_const(n: i32) -> Self;
}
impl num_traits::ConstOne for BigInt {...}

Note: const ZERO was already added in #298, as we didn't need any inline storage for that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant