pub struct UserPool {
pub users: Vec<User>,
/* private fields */
}Expand description
Pool of users for transaction attribution.
Fields§
§users: Vec<User>All users in the pool
Implementations§
Source§impl UserPool
impl UserPool
Sourcepub fn from_employees(employees: &[Employee]) -> Self
pub fn from_employees(employees: &[Employee]) -> Self
Build a UserPool from a slice of generated Employee records.
Each employee contributes one user with the same user_id,
persona, working_hours, and display name. This is the
canonical way to source user identities from master data so
that JE.created_by joins back to employees.user_id
(closes the v5.9.0 linkage gap that had JE creators using a
pool disjoint from the employees master).
Sourcepub fn get_users_by_persona(&self, persona: UserPersona) -> Vec<&User>
pub fn get_users_by_persona(&self, persona: UserPersona) -> Vec<&User>
Get all users of a specific persona.
Sourcepub fn get_random_user(
&self,
persona: UserPersona,
rng: &mut impl Rng,
) -> Option<&User>
pub fn get_random_user( &self, persona: UserPersona, rng: &mut impl Rng, ) -> Option<&User>
Get a random user of a specific persona.
Sourcepub fn rebuild_index(&mut self)
pub fn rebuild_index(&mut self)
Rebuild the persona index (call after deserialization).
Sourcepub fn generate_standard(company_codes: &[String]) -> Self
pub fn generate_standard(company_codes: &[String]) -> Self
Generate a standard user pool with typical distribution.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for UserPool
impl<'de> Deserialize<'de> for UserPool
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for UserPool
impl RefUnwindSafe for UserPool
impl Send for UserPool
impl Sync for UserPool
impl Unpin for UserPool
impl UnsafeUnpin for UserPool
impl UnwindSafe for UserPool
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.