summaryrefslogtreecommitdiffstats
path: root/third_party/rust/serde_json/src/lexical/bignum.rs
blob: f9551f534fe40f14d0d1ca7384c753cb77e798d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Adapted from https://github.com/Alexhuszagh/rust-lexical.

//! Big integer type definition.

use super::math::*;
use alloc::vec::Vec;

/// Storage for a big integer type.
#[derive(Clone, PartialEq, Eq)]
pub(crate) struct Bigint {
    /// Internal storage for the Bigint, in little-endian order.
    pub(crate) data: Vec<Limb>,
}

impl Default for Bigint {
    fn default() -> Self {
        Bigint {
            data: Vec::with_capacity(20),
        }
    }
}

impl Math for Bigint {
    #[inline]
    fn data(&self) -> &Vec<Limb> {
        &self.data
    }

    #[inline]
    fn data_mut(&mut self) -> &mut Vec<Limb> {
        &mut self.data
    }
}