/rust/registry/src/index.crates.io-6f17d22bba15001f/ring-0.17.14/src/arithmetic/n0.rs
Line | Count | Source (jump to first uncovered line) |
1 | | // Copyright 2015-2022 Brian Smith. |
2 | | // |
3 | | // Permission to use, copy, modify, and/or distribute this software for any |
4 | | // purpose with or without fee is hereby granted, provided that the above |
5 | | // copyright notice and this permission notice appear in all copies. |
6 | | // |
7 | | // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
8 | | // WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
9 | | // MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY |
10 | | // SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
11 | | // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION |
12 | | // OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN |
13 | | // CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
14 | | |
15 | | use crate::limb::Limb; |
16 | | |
17 | | #[derive(Clone, Copy)] |
18 | | #[repr(transparent)] |
19 | | pub struct N0([Limb; 2]); |
20 | | |
21 | | impl N0 { |
22 | | #[cfg(feature = "alloc")] |
23 | | pub(super) const LIMBS_USED: usize = 64 / crate::limb::LIMB_BITS; |
24 | | |
25 | | #[inline] |
26 | 0 | pub const fn precalculated(n0: u64) -> Self { |
27 | 0 | #[cfg(target_pointer_width = "64")] |
28 | 0 | { |
29 | 0 | Self([n0, 0]) |
30 | 0 | } |
31 | 0 |
|
32 | 0 | #[cfg(target_pointer_width = "32")] |
33 | 0 | { |
34 | 0 | Self([n0 as Limb, (n0 >> crate::limb::LIMB_BITS) as Limb]) |
35 | 0 | } |
36 | 0 | } |
37 | | } |