Skip to main content

haste_repository/
lib.rs

1use crate::{
2    admin::{Login, Migrate, ProjectModelAdmin, SystemAdmin, TenantModelAdmin},
3    failed_indexing::FailedIndexingProvider,
4    fhir::FHIRRepository,
5    sequence::ResourceSequential,
6    types::{
7        authorization_code::{
8            AuthorizationCode, AuthorizationCodeSearchClaims, CreateAuthorizationCode,
9        },
10        membership::{CreateMembership, Membership, MembershipSearchClaims},
11        mfa::{
12            MFAKey, UserMFACredential, UserMFACredentialCreate, UserMFACredentialUpdate,
13            UserMFASearchClaims,
14        },
15        project::{CreateProject, Project, ProjectSearchClaims},
16        scope::{CreateScope, Scope, ScopeKey, ScopeSearchClaims, UpdateScope},
17        tenant::{CreateTenant, Tenant, TenantSearchClaims},
18        user::{CreateUser, UpdateUser, User, UserSearchClauses},
19    },
20};
21
22pub mod admin;
23pub mod failed_indexing;
24pub mod fhir;
25pub mod pg;
26pub mod sequence;
27pub mod types;
28pub mod utilities;
29
30/// Repository trait which encompasses all repository operations.
31pub trait Repository:
32    FHIRRepository
33    + SystemAdmin<User, UserSearchClauses>
34    + TenantModelAdmin<
35        CreateAuthorizationCode,
36        AuthorizationCode,
37        AuthorizationCodeSearchClaims,
38        AuthorizationCode,
39        String,
40    > + TenantModelAdmin<CreateTenant, Tenant, TenantSearchClaims, Tenant, String>
41    + TenantModelAdmin<CreateUser, User, UserSearchClauses, UpdateUser, String>
42    + TenantModelAdmin<CreateProject, Project, ProjectSearchClaims, Project, String>
43    + TenantModelAdmin<
44        UserMFACredentialCreate,
45        UserMFACredential,
46        UserMFASearchClaims,
47        UserMFACredentialUpdate,
48        MFAKey,
49    > + ProjectModelAdmin<
50        CreateAuthorizationCode,
51        AuthorizationCode,
52        AuthorizationCodeSearchClaims,
53        AuthorizationCode,
54        String,
55    > + ProjectModelAdmin<CreateMembership, Membership, MembershipSearchClaims, Membership, String>
56    + ProjectModelAdmin<CreateScope, Scope, ScopeSearchClaims, UpdateScope, ScopeKey>
57    + FailedIndexingProvider
58    + Login
59    + ResourceSequential
60    + Migrate
61{
62}