haste_repository/
lib.rs

1use crate::{
2    admin::{Login, Migrate, ProjectAuthAdmin, TenantAuthAdmin},
3    fhir::FHIRRepository,
4    types::{
5        authorization_code::{
6            AuthorizationCode, AuthorizationCodeSearchClaims, CreateAuthorizationCode,
7        },
8        membership::{CreateMembership, Membership, MembershipSearchClaims},
9        project::{CreateProject, Project, ProjectSearchClaims},
10        scope::{CreateScope, Scope, ScopeKey, ScopeSearchClaims, UpdateScope},
11        tenant::{CreateTenant, Tenant, TenantSearchClaims},
12        user::{CreateUser, UpdateUser, User, UserSearchClauses},
13    },
14};
15
16pub mod admin;
17pub mod fhir;
18pub mod pg;
19pub mod types;
20pub mod utilities;
21
22/// Repository trait which encompasses all repository operations.
23pub trait Repository:
24    FHIRRepository
25    + TenantAuthAdmin<
26        CreateAuthorizationCode,
27        AuthorizationCode,
28        AuthorizationCodeSearchClaims,
29        AuthorizationCode,
30        String,
31    > + TenantAuthAdmin<CreateTenant, Tenant, TenantSearchClaims, Tenant, String>
32    + TenantAuthAdmin<CreateUser, User, UserSearchClauses, UpdateUser, String>
33    + TenantAuthAdmin<CreateProject, Project, ProjectSearchClaims, Project, String>
34    + ProjectAuthAdmin<
35        CreateAuthorizationCode,
36        AuthorizationCode,
37        AuthorizationCodeSearchClaims,
38        AuthorizationCode,
39        String,
40    > + ProjectAuthAdmin<CreateMembership, Membership, MembershipSearchClaims, Membership, String>
41    + ProjectAuthAdmin<CreateScope, Scope, ScopeSearchClaims, UpdateScope, ScopeKey>
42    + Login
43    + Migrate
44{
45}