Skip to main content

AmountSampler

Struct AmountSampler 

Source
pub struct AmountSampler { /* private fields */ }
Expand description

Sampler for realistic transaction amounts.

Implementations§

Source§

impl AmountSampler

Source

pub fn new(seed: u64) -> Self

Create a new sampler with default configuration.

Source

pub fn with_config(seed: u64, config: AmountDistributionConfig) -> Self

Create a sampler with custom configuration.

Source

pub fn with_benford(seed: u64, config: AmountDistributionConfig) -> Self

Create a sampler with Benford’s Law compliance enabled.

Source

pub fn with_fraud_config( seed: u64, config: AmountDistributionConfig, threshold_config: ThresholdConfig, benford_enabled: bool, ) -> Self

Create a sampler with full fraud configuration.

Source

pub fn set_benford_enabled(&mut self, enabled: bool)

Enable or disable Benford’s Law compliance.

Source

pub fn is_benford_enabled(&self) -> bool

Check if Benford’s Law compliance is enabled.

Source

pub fn sample(&mut self) -> Decimal

Sample a single amount.

If Benford’s Law compliance is enabled, uses the Benford sampler. Otherwise uses log-normal distribution with round-number bias.

Source

pub fn sample_lognormal(&mut self) -> Decimal

Sample using the log-normal distribution (original behavior).

Source

pub fn sample_fraud(&mut self, pattern: FraudAmountPattern) -> Decimal

Sample a fraud amount with the specified pattern.

Returns a normal amount if fraud generator is not configured.

Source

pub fn sample_summing_to( &mut self, count: usize, total: Decimal, ) -> Vec<Decimal>

Sample multiple amounts that sum to a target total.

Useful for generating line items that must balance.

Source

pub fn sample_in_range(&mut self, min: Decimal, max: Decimal) -> Decimal

Sample an amount within a specific range.

Source

pub fn reset(&mut self, seed: u64)

Reset the sampler with a new seed.

Auto Trait Implementations§

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> 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V