use quote::quote;
use super::super::super::parse::ServerDb;
pub(super) fn build(db: ServerDb) -> proc_macro2::TokenStream {
match db {
ServerDb::Postgres => quote! {
pub fn router<R, C, Auth>(
db: super::Cratestack,
registry: R,
codec: C,
auth_provider: Auth,
) -> axum::Router
where
R: super::procedures::ProcedureRegistry,
C: HttpTransport,
Auth: AuthProvider,
{
model_router(db.clone(), codec.clone(), auth_provider.clone())
.merge(procedure_router(db, registry, codec, auth_provider))
}
},
ServerDb::None => quote! {
pub fn router<R, C, Auth>(
db: super::Cratestack,
registry: R,
codec: C,
auth_provider: Auth,
) -> axum::Router
where
R: super::procedures::ProcedureRegistry,
C: HttpTransport,
Auth: AuthProvider,
{
procedure_router(db, registry, codec, auth_provider)
}
},
}
}