Coverage Report

Created: 2025-05-07 06:59

/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
}