size_of/support/
num_bigint.rs1#![cfg(feature = "num-bigint")]
2
3use crate::{Context, SizeOf};
4use core::mem::size_of;
5use num_bigint::{
6 BigInt, BigUint, ParseBigIntError, Sign, TryFromBigIntError, U32Digits, U64Digits,
7};
8
9impl_total_size_childless! {
10 Sign,
11 ParseBigIntError,
12 TryFromBigIntError<T>,
13}
14
15impl SizeOf for BigUint {
16 fn size_of_children(&self, context: &mut Context) {
17 context
19 .add_arraylike(self.iter_u64_digits().len(), size_of::<u64>())
20 .add_distinct_allocation();
21 }
22}
23
24impl SizeOf for BigInt {
25 fn size_of_children(&self, context: &mut Context) {
26 context
28 .add_arraylike(self.iter_u64_digits().len(), size_of::<u64>())
29 .add_distinct_allocation();
30 }
31}
32
33impl SizeOf for U32Digits<'_> {
34 #[inline]
35 fn size_of_children(&self, _context: &mut Context) {}
36}
37
38impl SizeOf for U64Digits<'_> {
39 #[inline]
40 fn size_of_children(&self, _context: &mut Context) {}
41}