Skip to main content

BigIntegerLimits

Struct BigIntegerLimits 

Source
pub struct BigIntegerLimits<R, Q = u64>{ /* private fields */ }
Available on crate feature big-integer only.
Expand description

Optional point limits for one arbitrary-precision integer.

§Type Parameters

  • R - Caller-defined resource identity retained by limits and errors.
  • Q - Exact unsigned quantity used for measurements and accounting.

§Examples

use num_bigint::BigInt;
use qubit_budget::BigIntegerLimits;
use qubit_budget::ResourceLimit;

let limits = BigIntegerLimits::builder()
    .magnitude_bits_limit(ResourceLimit::new("integer bits", 8_u64))
    .build();
limits.check(&BigInt::from(255_u16)).expect("255 needs eight bits");

Implementations§

Source§

impl<R, Q> BigIntegerLimits<R, Q>

Source

pub const fn new() -> Self

Creates limits with no configured integer bounds.

§Returns

Creates limits with no configured integer bounds.

Source

pub const fn builder() -> BigIntegerLimitsBuilder<R, Q>

Creates a builder for integer limits.

§Returns

Creates a builder for integer limits.

Source

pub const fn into_builder(self) -> BigIntegerLimitsBuilder<R, Q>

Converts these limits into a builder for further configuration.

§Returns

Converts these limits into a builder for further configuration.

Source

pub const fn magnitude_bits_limit(&self) -> Option<&ResourceLimit<R, Q>>

Returns the configured magnitude bit-length limit, if any.

§Returns

Returns the configured magnitude bit-length limit, if any.

None indicates that the corresponding limit or budget dimension is unconfigured.

Source

pub const fn significant_decimal_digits_limit( &self, ) -> Option<&ResourceLimit<R, Q>>

Returns the configured significant decimal digit limit, if any.

§Returns

Returns the configured significant decimal digit limit, if any.

None indicates that the corresponding limit or budget dimension is unconfigured.

Source

pub fn check(&self, value: &BigInt) -> Result<(), MeasuredBudgetError<R, Q>>
where R: Clone,

Checks one integer without formatting clearly oversized values.

Values near the decimal boundary are formatted once. Clearly oversized values report a conservative lower bound instead of allocating a decimal string proportional to the input magnitude.

§Parameters
  • value - Arbitrary-precision integer whose magnitude and decimal digit counts are compared with the configured limits.
§Returns

Ok(()) when the operation completes successfully.

§Errors

Returns MeasuredBudgetError when a native measurement cannot fit Q or a configured limit rejects it.

Trait Implementations§

Source§

impl<R: Clone, Q> Clone for BigIntegerLimits<R, Q>

Source§

fn clone(&self) -> BigIntegerLimits<R, Q>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<R: Copy, Q> Copy for BigIntegerLimits<R, Q>

Source§

impl<R: Debug, Q> Debug for BigIntegerLimits<R, Q>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<R, Q> Default for BigIntegerLimits<R, Q>

Source§

fn default() -> Self

Creates unconfigured integer limits.

§Returns

Creates unconfigured integer limits.

Source§

impl<R: Eq, Q> Eq for BigIntegerLimits<R, Q>
where Q: ResourceQuantity + Eq,

Source§

impl<R: Hash, Q> Hash for BigIntegerLimits<R, Q>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<R: PartialEq, Q> PartialEq for BigIntegerLimits<R, Q>

Source§

fn eq(&self, other: &BigIntegerLimits<R, Q>) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl<R: PartialEq, Q> StructuralPartialEq for BigIntegerLimits<R, Q>

Auto Trait Implementations§

§

impl<R, Q> Freeze for BigIntegerLimits<R, Q>
where Option<ResourceLimit<R, Q>>: Freeze,

§

impl<R, Q> RefUnwindSafe for BigIntegerLimits<R, Q>

§

impl<R, Q> Send for BigIntegerLimits<R, Q>
where Option<ResourceLimit<R, Q>>: Send,

§

impl<R, Q> Sync for BigIntegerLimits<R, Q>
where Option<ResourceLimit<R, Q>>: Sync,

§

impl<R, Q> Unpin for BigIntegerLimits<R, Q>
where Option<ResourceLimit<R, Q>>: Unpin,

§

impl<R, Q> UnsafeUnpin for BigIntegerLimits<R, Q>

§

impl<R, Q> UnwindSafe for BigIntegerLimits<R, Q>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.