pub struct UomRepository(/* private fields */);Expand description
Repository for Uom entities.
All standard CRUD, soft-delete, pagination, and bulk methods are
provided automatically via Deref to backbone_orm::GenericCrudRepository.
Implementations§
Source§impl UomRepository
Catalog UOM SQL. Lives here (not in the service) per the module’s 4-layer rule.
impl UomRepository
Catalog UOM SQL. Lives here (not in the service) per the module’s 4-layer rule.
Sourcepub async fn exists_id(
&self,
executor: impl Executor<'_, Database = Postgres>,
id: Uuid,
) -> Result<bool, Error>
pub async fn exists_id( &self, executor: impl Executor<'_, Database = Postgres>, id: Uuid, ) -> Result<bool, Error>
EXISTS probe for a live unit (replaces the prior string-built exists_in helper
in the write service). Used for default_uom_id FK validation on create-item and
parent-unit validation on tree writes.
Sourcepub async fn find_factor(
&self,
executor: impl Executor<'_, Database = Postgres>,
id: Uuid,
) -> Result<Option<Decimal>, Error>
pub async fn find_factor( &self, executor: impl Executor<'_, Database = Postgres>, id: Uuid, ) -> Result<Option<Decimal>, Error>
Stored effective factor of one live unit (None if the unit does not exist).
Used to compute a child unit’s stored factor at insert time.
Sourcepub async fn insert_uom(
&self,
executor: impl Executor<'_, Database = Postgres>,
r: &NewUomRow<'_>,
) -> Result<(), Error>
pub async fn insert_uom( &self, executor: impl Executor<'_, Database = Postgres>, r: &NewUomRow<'_>, ) -> Result<(), Error>
Insert a validated UOM row. Unique-constraint errors propagate as sqlx::Error so
the service can disambiguate code duplicates.
Sourcepub async fn load_tree_chain(
&self,
executor: impl Executor<'_, Database = Postgres>,
uom: Uuid,
) -> Result<Option<Vec<UomChainNode>>, Error>
pub async fn load_tree_chain( &self, executor: impl Executor<'_, Database = Postgres>, uom: Uuid, ) -> Result<Option<Vec<UomChainNode>>, Error>
Load uom together with its full ancestor chain up to (and including) its tree root.
The leaf must be a live row (None otherwise); ancestors are loaded
regardless of their soft-delete state, so archiving a unit never makes its subtree
unconvertible. Rows come back in arbitrary SQL order — the caller assembles them into
an ordered [UomChain] with [UomChain::from_rows], which fails loudly on cycles
and dangling links. UNION (not UNION ALL) bounds the recursion if stored links
are ever corrupt.
Sourcepub async fn is_self_or_descendant(
&self,
conn: &mut PgConnection,
uom: Uuid,
candidate: Uuid,
) -> Result<bool, Error>
pub async fn is_self_or_descendant( &self, conn: &mut PgConnection, uom: Uuid, candidate: Uuid, ) -> Result<bool, Error>
Is candidate the unit itself or one of its descendants in the tree?
The cycle guard for re-parenting: a unit must never point at its own subtree.
Runs on the caller’s transaction connection.
Sourcepub async fn set_relative(
&self,
conn: &mut PgConnection,
uom: Uuid,
relative_uom_id: Option<Uuid>,
relative_factor: Option<Decimal>,
) -> Result<(), Error>
pub async fn set_relative( &self, conn: &mut PgConnection, uom: Uuid, relative_uom_id: Option<Uuid>, relative_factor: Option<Decimal>, ) -> Result<(), Error>
Point a live unit at a new parent (or detach it to become a root). The caller has
validated shape/positivity and run the descendant cycle guard; the stored
factor re-derivation happens in UomRepository::recompute_factors.
Sourcepub async fn recompute_factors(
&self,
executor: impl Executor<'_, Database = Postgres>,
) -> Result<(), Error>
pub async fn recompute_factors( &self, executor: impl Executor<'_, Database = Postgres>, ) -> Result<(), Error>
Re-derive every stored tree factor on the caller’s connection by calling the SQL function installed by the parent-store-tree migration. Idempotent (rows whose derived factor equals the stored one are not rewritten) and loud: a cycle or dangling link raises a database error instead of pinning a stale factor.
Sourcepub async fn find_protection(
&self,
conn: &mut PgConnection,
id: Uuid,
) -> Result<Option<bool>, Error>
pub async fn find_protection( &self, conn: &mut PgConnection, id: Uuid, ) -> Result<Option<bool>, Error>
Protection flag of one live unit (None if the unit does not exist). Protected
rows are module-seeded reference data and refuse deletion.
Sourcepub async fn count_live_children(
&self,
conn: &mut PgConnection,
uom: Uuid,
) -> Result<i64, Error>
pub async fn count_live_children( &self, conn: &mut PgConnection, uom: Uuid, ) -> Result<i64, Error>
Count the unit’s live children in the tree — units whose relative_uom_id
points here. A unit that is still the live parent of live units must be
re-linked before it can be retired.
Sourcepub async fn exists_live_item_using(
&self,
conn: &mut PgConnection,
uom: Uuid,
) -> Result<bool, Error>
pub async fn exists_live_item_using( &self, conn: &mut PgConnection, uom: Uuid, ) -> Result<bool, Error>
Does any live item still use this unit as its default? Retiring a referenced unit would orphan the item’s unit resolution (the reason generic delete is not mounted for Uom — ADR-005).
Sourcepub async fn soft_delete_uom(
&self,
conn: &mut PgConnection,
uom: Uuid,
) -> Result<(), Error>
pub async fn soft_delete_uom( &self, conn: &mut PgConnection, uom: Uuid, ) -> Result<(), Error>
Archive (soft-delete) a unit the validated retire path has cleared. The storage-level protected-unit guard is the backstop if a protected row ever reaches this UPDATE.
Methods from Deref<Target = GenericCrudRepository<Uom, SoftDelete>>§
pub fn pool(&self) -> &Pool<Postgres>
pub fn table_name(&self) -> &str
Sourcepub async fn create(&self, entity: &T) -> Result<T, Error>
pub async fn create(&self, entity: &T) -> Result<T, Error>
Insert a new entity row and return the created row.
Sourcepub async fn bulk_create(&self, entities: &[T]) -> Result<Vec<T>, Error>
pub async fn bulk_create(&self, entities: &[T]) -> Result<Vec<T>, Error>
Insert multiple entity rows inside a single transaction.
Sourcepub async fn run_filtered_query(
&self,
pagination: PaginationParams,
base_condition: Option<&str>,
filters: &HashMap<String, String>,
column_types: &HashMap<String, String>,
search_fields: &[&str],
) -> Result<PaginatedResult<T>, Error>
pub async fn run_filtered_query( &self, pagination: PaginationParams, base_condition: Option<&str>, filters: &HashMap<String, String>, column_types: &HashMap<String, String>, search_fields: &[&str], ) -> Result<PaginatedResult<T>, Error>
Execute a filtered / paginated query against this entity’s table.
base_condition — when Some, it is inserted as the __base_condition
filter key which the ORM injects verbatim into the WHERE clause. Use
this to add soft-delete guards without touching the caller-supplied
filters.
NOTE: prefer the *_scoped entry points for anything a client can reach —
they compose the company fence into this condition. This raw form applies no
fence and is for internal/job callers that have already established scope.
Sourcepub async fn run_aggregate_query(
&self,
spec: &AggregateSpec,
base_condition: Option<&str>,
filters: &HashMap<String, String>,
column_types: &HashMap<String, String>,
search_fields: &[&str],
) -> Result<AggregateResult, Error>
pub async fn run_aggregate_query( &self, spec: &AggregateSpec, base_condition: Option<&str>, filters: &HashMap<String, String>, column_types: &HashMap<String, String>, search_fields: &[&str], ) -> Result<AggregateResult, Error>
The aggregate twin of Self::run_filtered_query.
Takes the same base_condition so an aggregate is computed over exactly
the row set the matching list would return — a total that counted
soft-deleted rows, or another tenant’s, would be wrong in a way no
caller could see.
Sourcepub async fn find_by_text_field(
&self,
field: &str,
value: &str,
) -> Result<Option<T>, Error>
pub async fn find_by_text_field( &self, field: &str, value: &str, ) -> Result<Option<T>, Error>
Find an active entity by a unique text field.
Filters metadata->>'deleted_at' IS NULL automatically.
Sourcepub async fn exists_by_text_field(
&self,
field: &str,
value: &str,
) -> Result<bool, Error>
pub async fn exists_by_text_field( &self, field: &str, value: &str, ) -> Result<bool, Error>
Check existence by a unique text field (active records only).
Sourcepub async fn find_by_uuid_field(
&self,
field: &str,
value: Uuid,
) -> Result<Option<T>, Error>
pub async fn find_by_uuid_field( &self, field: &str, value: Uuid, ) -> Result<Option<T>, Error>
Find an active entity by a unique UUID field.
Sourcepub async fn exists_by_uuid_field(
&self,
field: &str,
value: Uuid,
) -> Result<bool, Error>
pub async fn exists_by_uuid_field( &self, field: &str, value: Uuid, ) -> Result<bool, Error>
Check existence by a unique UUID field (active records only).
Sourcepub async fn list_paginated_filtered(
&self,
pagination: PaginationParams,
filters: Option<&HashMap<String, String>>,
) -> Result<PaginatedResult<T>, Error>
pub async fn list_paginated_filtered( &self, pagination: PaginationParams, filters: Option<&HashMap<String, String>>, ) -> Result<PaginatedResult<T>, Error>
Paginate active entities with filter and search support.
Requires T: EntityRepoMeta for column type hints and search fields.
Sourcepub async fn aggregate_filtered(
&self,
spec: &AggregateSpec,
filters: Option<&HashMap<String, String>>,
) -> Result<AggregateResult, Error>
pub async fn aggregate_filtered( &self, spec: &AggregateSpec, filters: Option<&HashMap<String, String>>, ) -> Result<AggregateResult, Error>
Group and reduce active entities, skipping the soft-deleted.
Sourcepub async fn list_paginated_filtered_scoped(
&self,
pagination: PaginationParams,
filters: Option<&HashMap<String, String>>,
company: Option<Uuid>,
) -> Result<PaginatedResult<T>, Error>
pub async fn list_paginated_filtered_scoped( &self, pagination: PaginationParams, filters: Option<&HashMap<String, String>>, company: Option<Uuid>, ) -> Result<PaginatedResult<T>, Error>
Paginate active entities, fenced to company.
The company-scoped counterpart of Self::list_paginated_filtered and the one any
client-reachable read should use. Fails closed: a fenced entity with no company
returns MissingCompanyScope rather than every company’s rows.
The fence is ANDed into the same __base_condition the soft-delete guard uses, so
it lands in SQL — which is what keeps total honest. A post-filter in the handler
would fetch limit rows and return the survivors, leaving callers unable to tell
“end of data” from “filtered”, and could not fix COUNT at all.
Sourcepub async fn list_deleted_filtered_scoped(
&self,
pagination: PaginationParams,
filters: Option<&HashMap<String, String>>,
company: Option<Uuid>,
) -> Result<PaginatedResult<T>, Error>
pub async fn list_deleted_filtered_scoped( &self, pagination: PaginationParams, filters: Option<&HashMap<String, String>>, company: Option<Uuid>, ) -> Result<PaginatedResult<T>, Error>
Paginate soft-deleted entities, fenced to company.
/trash is the worse leak of the two: it serves rows whose owners were told the
data is gone. Same fence, same fail-closed contract.
Sourcepub async fn list_deleted_filtered(
&self,
pagination: PaginationParams,
filters: Option<&HashMap<String, String>>,
) -> Result<PaginatedResult<T>, Error>
pub async fn list_deleted_filtered( &self, pagination: PaginationParams, filters: Option<&HashMap<String, String>>, ) -> Result<PaginatedResult<T>, Error>
Paginate soft-deleted entities with filter support.
Sourcepub async fn find_by_id(&self, id: &str) -> Result<Option<T>, Error>
pub async fn find_by_id(&self, id: &str) -> Result<Option<T>, Error>
Find an active (non-deleted) entity by primary key.
Sourcepub async fn find_all(&self) -> Result<Vec<T>, Error>
pub async fn find_all(&self) -> Result<Vec<T>, Error>
Return all active (non-deleted) entities.
Sourcepub async fn update(&self, id: &str, entity: &T) -> Result<Option<T>, Error>
pub async fn update(&self, id: &str, entity: &T) -> Result<Option<T>, Error>
Full update — skips silently if the record is already soft-deleted.
Sourcepub async fn delete(&self, id: &str) -> Result<bool, Error>
pub async fn delete(&self, id: &str) -> Result<bool, Error>
Soft-delete an entity (sets metadata.deleted_at).
Sourcepub async fn exists(&self, id: &str) -> Result<bool, Error>
pub async fn exists(&self, id: &str) -> Result<bool, Error>
Return true if an active entity with the given ID exists.
Sourcepub async fn list_paginated(
&self,
pagination: PaginationParams,
) -> Result<PaginatedResult<T>, Error>
pub async fn list_paginated( &self, pagination: PaginationParams, ) -> Result<PaginatedResult<T>, Error>
Paginate active entities (most-recent-first by ID).
Sourcepub async fn soft_delete(&self, id: &str) -> Result<bool, Error>
pub async fn soft_delete(&self, id: &str) -> Result<bool, Error>
Set metadata.deleted_at to NOW() (soft delete).
Sourcepub async fn restore(&self, id: &str) -> Result<Option<T>, Error>
pub async fn restore(&self, id: &str) -> Result<Option<T>, Error>
Remove deleted_at from metadata, restoring the entity.
Sourcepub async fn list_deleted(
&self,
pagination: PaginationParams,
) -> Result<PaginatedResult<T>, Error>
pub async fn list_deleted( &self, pagination: PaginationParams, ) -> Result<PaginatedResult<T>, Error>
Paginate soft-deleted entities (trash view).
Sourcepub async fn empty_trash(&self) -> Result<u64, Error>
pub async fn empty_trash(&self) -> Result<u64, Error>
Permanently delete all soft-deleted rows (empty trash).
Sourcepub async fn find_deleted_by_id(&self, id: &str) -> Result<Option<T>, Error>
pub async fn find_deleted_by_id(&self, id: &str) -> Result<Option<T>, Error>
Find a soft-deleted entity by primary key.
Sourcepub async fn permanent_delete(&self, id: &str) -> Result<bool, Error>
pub async fn permanent_delete(&self, id: &str) -> Result<bool, Error>
Permanently delete a soft-deleted entity by primary key.
Sourcepub async fn count_active(&self) -> Result<u64, Error>
pub async fn count_active(&self) -> Result<u64, Error>
Count active (non-deleted) entities.
Sourcepub async fn count_deleted(&self) -> Result<u64, Error>
pub async fn count_deleted(&self) -> Result<u64, Error>
Count soft-deleted entities.
Sourcepub async fn bulk_soft_delete(&self, ids: &[String]) -> Result<u64, Error>
pub async fn bulk_soft_delete(&self, ids: &[String]) -> Result<u64, Error>
Soft-delete many active rows atomically.
Sourcepub async fn bulk_restore(&self, ids: &[String]) -> Result<Vec<T>, Error>
pub async fn bulk_restore(&self, ids: &[String]) -> Result<Vec<T>, Error>
Restore many soft-deleted rows atomically, returning the restored rows.
Sourcepub async fn bulk_permanent_delete(&self, ids: &[String]) -> Result<u64, Error>
pub async fn bulk_permanent_delete(&self, ids: &[String]) -> Result<u64, Error>
Permanently delete many soft-deleted rows atomically.
Sourcepub async fn restore_all(&self) -> Result<Vec<T>, Error>
pub async fn restore_all(&self) -> Result<Vec<T>, Error>
Restore every soft-deleted row, returning the restored rows. A single
UPDATE ... RETURNING is atomic, and the returned rows let the service
layer emit a Restored event per entity.
Trait Implementations§
Source§impl CrudRepository<Uom> for UomRepository
impl CrudRepository<Uom> for UomRepository
?include= relations: fetch rows from table by id list, as JSON
(raw row_to_json). table comes from EntityRepoMeta::relations()
(generator-emitted), never client input. Default: no expansion. The
Postgres-backed generated repos override this via impl_crud_repository!.Source§fn create<'life0, 'async_trait>(
&'life0 self,
entity: Uom,
) -> Pin<Box<dyn Future<Output = Result<Uom, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create<'life0, 'async_trait>(
&'life0 self,
entity: Uom,
) -> Pin<Box<dyn Future<Output = Result<Uom, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn find_by_id<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Uom>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find_by_id<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Uom>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn find_by_id_including_deleted<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Uom>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find_by_id_including_deleted<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Uom>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn update<'life0, 'async_trait>(
&'life0 self,
entity: Uom,
) -> Pin<Box<dyn Future<Output = Result<Uom, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update<'life0, 'async_trait>(
&'life0 self,
entity: Uom,
) -> Pin<Box<dyn Future<Output = Result<Uom, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn soft_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn soft_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn restore<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Uom>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn restore<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Uom>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn hard_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn hard_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn list<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
) -> Pin<Box<dyn Future<Output = Result<(Vec<Uom>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
) -> Pin<Box<dyn Future<Output = Result<(Vec<Uom>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn list_filtered<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
filters: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<(Vec<Uom>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_filtered<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
filters: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<(Vec<Uom>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn list_filtered_with_info<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
filters: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<(Vec<Uom>, PaginationInfo), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_filtered_with_info<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
filters: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<(Vec<Uom>, PaginationInfo), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
list_filtered, carrying the pagination info (cursor positions
included) so the HTTP layer can surface keyset paging. Default: the
tuple form with the cursor fields absent; the generated Postgres
repositories override this with the real keyset walk.Source§fn table_name(&self) -> Option<&str>
fn table_name(&self) -> Option<&str>
list_filtered. Read morefn aggregate_filtered<'life0, 'life1, 'async_trait>(
&'life0 self,
spec: &'life1 AggregateSpec,
filters: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<AggregateResult, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn list_deleted<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
) -> Pin<Box<dyn Future<Output = Result<(Vec<Uom>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_deleted<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
) -> Pin<Box<dyn Future<Output = Result<(Vec<Uom>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn count<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn count<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn count_deleted<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn count_deleted<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn bulk_create<'life0, 'async_trait>(
&'life0 self,
entities: Vec<Uom>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Uom>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn bulk_create<'life0, 'async_trait>(
&'life0 self,
entities: Vec<Uom>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Uom>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn empty_trash<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn empty_trash<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn bulk_soft_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn bulk_soft_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn bulk_restore<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<Uom>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn bulk_restore<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<Uom>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn bulk_hard_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn bulk_hard_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn restore_all<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<Uom>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn restore_all<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<Uom>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl !RefUnwindSafe for UomRepository
impl !UnwindSafe for UomRepository
impl Freeze for UomRepository
impl Send for UomRepository
impl Sync for UomRepository
impl Unpin for UomRepository
impl UnsafeUnpin for UomRepository
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more