Skip to main content

EntityRegistry

Struct EntityRegistry 

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

Central registry for all master data entities.

Ensures referential integrity by tracking entity existence and validity over time. All transaction generators should check this registry before using any master data reference.

Implementations§

Source§

impl EntityRegistry

Source

pub fn new() -> Self

Create a new empty registry.

Source

pub fn register(&mut self, record: EntityRecord)

Register a new entity.

Source

pub fn get(&self, entity_id: &EntityId) -> Option<&EntityRecord>

Get an entity by ID.

Source

pub fn get_mut(&mut self, entity_id: &EntityId) -> Option<&mut EntityRecord>

Get a mutable reference to an entity.

Source

pub fn exists(&self, entity_id: &EntityId) -> bool

Check if an entity exists.

Source

pub fn is_valid(&self, entity_id: &EntityId, date: NaiveDate) -> bool

Check if an entity exists and is valid on a given date.

Source

pub fn can_transact(&self, entity_id: &EntityId, date: NaiveDate) -> bool

Check if an entity can be used in transactions on a given date.

Source

pub fn get_by_type(&self, entity_type: EntityType) -> Vec<&EntityRecord>

Get all entities of a given type.

Source

pub fn get_valid_by_type( &self, entity_type: EntityType, date: NaiveDate, ) -> Vec<&EntityRecord>

Get all entities of a given type that are valid on a date.

Source

pub fn get_by_company(&self, company_code: &str) -> Vec<&EntityRecord>

Get all entities for a company code.

Source

pub fn get_ids_by_type(&self, entity_type: EntityType) -> Vec<&EntityId>

Get all entity IDs of a given type.

Source

pub fn count_by_type(&self, entity_type: EntityType) -> usize

Get count of entities by type.

Source

pub fn total_count(&self) -> usize

Get total count of all entities.

Source

pub fn update_status( &mut self, entity_id: &EntityId, new_status: EntityStatus, date: NaiveDate, ) -> bool

Update entity status.

Source

pub fn block(&mut self, entity_id: &EntityId, date: NaiveDate) -> bool

Block an entity for new transactions.

Source

pub fn unblock(&mut self, entity_id: &EntityId, date: NaiveDate) -> bool

Unblock an entity.

Source

pub fn get_events_on(&self, date: NaiveDate) -> &[EntityEvent]

Get events that occurred on a specific date.

Source

pub fn get_events_in_range( &self, from: NaiveDate, to: NaiveDate, ) -> Vec<&EntityEvent>

Get events in a date range.

Source

pub fn timeline_dates(&self) -> impl Iterator<Item = &NaiveDate>

Get the timeline entry dates.

Source

pub fn validate_reference( &self, entity_id: &EntityId, transaction_date: NaiveDate, ) -> Result<(), String>

Validate that an entity reference can be used on a transaction date. Returns an error message if invalid.

Source

pub fn rebuild_indices(&mut self)

Rebuild all indices (call after deserialization).

Source

pub fn register_entity(&mut self, record: EntityRecord)

Alias for register - registers a new entity.

Source

pub fn record_event(&mut self, event: EntityEvent)

Record an event for an entity.

Source

pub fn is_valid_on(&self, entity_id: &EntityId, date: NaiveDate) -> bool

Check if an entity is valid on a given date. Alias for is_valid.

Trait Implementations§

Source§

impl Clone for EntityRegistry

Source§

fn clone(&self) -> EntityRegistry

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 EntityRegistry

Source§

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

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

impl Default for EntityRegistry

Source§

fn default() -> EntityRegistry

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for EntityRegistry

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 EntityRegistry

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