use connectrpc::Router as ConnectRouter;
pub struct ServiceRouter {
inner: ConnectRouter,
service_name: String,
}
impl ServiceRouter {
pub fn new() -> Self {
Self {
inner: ConnectRouter::new(),
service_name: "sunbeam-g2v".to_string(),
}
}
pub fn with_name(name: impl Into<String>) -> Self {
Self {
inner: ConnectRouter::new(),
service_name: name.into(),
}
}
pub fn from_router(inner: ConnectRouter) -> Self {
Self {
inner,
service_name: "sunbeam-g2v".to_string(),
}
}
pub fn service_name(&self) -> &str {
&self.service_name
}
pub fn inner(&self) -> &ConnectRouter {
&self.inner
}
pub fn into_inner(self) -> ConnectRouter {
self.inner
}
}
impl Default for ServiceRouter {
fn default() -> Self {
Self::new()
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_router_new() {
let router = ServiceRouter::new();
assert_eq!(router.service_name, "sunbeam-g2v");
}
#[test]
fn test_router_with_name() {
let router = ServiceRouter::with_name("my-service");
assert_eq!(router.service_name, "my-service");
}
#[test]
fn test_router_default() {
let router = ServiceRouter::default();
assert_eq!(router.service_name, "sunbeam-g2v");
}
#[test]
fn test_router_inner() {
let router = ServiceRouter::new();
let _inner: &ConnectRouter = router.inner();
}
}