Skip to main content

haste_repository/
lib.rs

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