use crate::{datastore::DatastoreWrapper, proto::wallguard::wall_guard_server::WallGuardServer};
use server::WallGuardImpl;
use std::net::ToSocketAddrs;
use tonic::transport::Server;
mod endpoints;
mod request_log;
mod server;
const ADDR: &str = "0.0.0.0";
const PORT: u16 = 50051;
pub async fn run_grpc_server(datastore: DatastoreWrapper) {
let addr = format!("{ADDR}:{PORT}")
.to_socket_addrs()
.expect("Failed to resolve address")
.next()
.expect("Failed to get address");
Server::builder()
.add_service(
WallGuardServer::new(WallGuardImpl { datastore })
.max_decoding_message_size(50 * 1024 * 1024),
)
.serve(addr)
.await
.expect("Failed to start gRPC server");
}