Skip to main content

AmlScenario

Struct AmlScenario 

Source
pub struct AmlScenario {
Show 16 fields pub scenario_id: String, pub typology: AmlTypology, pub secondary_typologies: Vec<AmlTypology>, pub stages: Vec<LaunderingStage>, pub start_date: NaiveDate, pub end_date: NaiveDate, pub involved_customers: Vec<Uuid>, pub involved_accounts: Vec<Uuid>, pub involved_transactions: Vec<Uuid>, pub total_amount: Decimal, pub evasion_tactics: Vec<EvasionTactic>, pub sophistication: Sophistication, pub detectability: f64, pub narrative: CaseNarrative, pub expected_alerts: Vec<ExpectedAlert>, pub was_successful: bool,
}
Expand description

An AML scenario (ground truth case).

Fields§

§scenario_id: String

Unique scenario identifier

§typology: AmlTypology

Primary AML typology

§secondary_typologies: Vec<AmlTypology>

Secondary typologies (if multiple)

§stages: Vec<LaunderingStage>

Money laundering stages involved

§start_date: NaiveDate

Scenario start date

§end_date: NaiveDate

Scenario end date

§involved_customers: Vec<Uuid>

Customer IDs involved

§involved_accounts: Vec<Uuid>

Account IDs involved

§involved_transactions: Vec<Uuid>

Transaction IDs involved

§total_amount: Decimal

Total amount laundered/defrauded

§evasion_tactics: Vec<EvasionTactic>

Evasion tactics employed

§sophistication: Sophistication

Sophistication level

§detectability: f64

Detectability score (0.0-1.0, higher = easier to detect)

§narrative: CaseNarrative

Case narrative

§expected_alerts: Vec<ExpectedAlert>

Alert triggers that should fire

§was_successful: bool

Whether scenario was successfully completed

Implementations§

Source§

impl AmlScenario

Source

pub fn new( scenario_id: &str, typology: AmlTypology, start_date: NaiveDate, end_date: NaiveDate, ) -> Self

Create a new AML scenario.

Source

pub fn add_stage(&mut self, stage: LaunderingStage)

Add a stage.

Source

pub fn add_customer(&mut self, customer_id: Uuid)

Add a customer.

Source

pub fn add_account(&mut self, account_id: Uuid)

Add an account.

Source

pub fn add_transaction(&mut self, transaction_id: Uuid, amount: Decimal)

Add a transaction.

Source

pub fn add_evasion_tactic(&mut self, tactic: EvasionTactic)

Add an evasion tactic.

Source

pub fn with_sophistication(self, sophistication: Sophistication) -> Self

Set sophistication level.

Source

pub fn complexity_score(&self) -> u8

Calculate case complexity score.

Trait Implementations§

Source§

impl Clone for AmlScenario

Source§

fn clone(&self) -> AmlScenario

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for AmlScenario

Source§

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

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

impl<'de> Deserialize<'de> for AmlScenario

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for AmlScenario

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

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> 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<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 = 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

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,