#[cfg(feature = "grpc")]
pub mod sdforge_v1 {
include!("pb/sdforge.v1.rs");
}
#[cfg(feature = "grpc")]
use crate::core::ApiMetadata;
#[cfg(feature = "grpc")]
use crate::define_registration;
mod grpc_impl;
#[cfg(feature = "grpc")]
pub use grpc_impl::{build_server, build_server_with_config};
#[cfg(all(feature = "grpc", feature = "security"))]
#[cfg(test)]
pub(crate) use grpc_impl::make_auth_interceptor;
#[cfg(feature = "grpc")]
#[derive(Debug, Default)]
pub struct SdForgeGrpcService {
}
#[cfg(feature = "grpc")]
#[derive(Debug, Clone)]
pub struct GrpcRoute {
#[allow(dead_code)]
pub(crate) service_name: String,
#[allow(dead_code)]
pub(crate) metadata: ApiMetadata,
}
#[cfg(feature = "grpc")]
define_registration!(GrpcRouteRegistration, GrpcRoute, ApiMetadata);
#[cfg(feature = "grpc")]
#[derive(Clone)]
pub struct GrpcServerConfig {
pub max_connections: usize,
pub timeout_seconds: u64,
#[cfg(feature = "security")]
pub auth: Option<crate::security::BearerAuth>,
}
#[cfg(all(feature = "grpc", feature = "security"))]
#[derive(Clone)]
pub(crate) struct AuthGrpcInterceptor {
auth: Option<crate::security::BearerAuth>,
}
#[cfg(test)]
#[cfg(feature = "grpc")]
mod tests;