rust_control_plane/service/discovery/
scopedroute.rs1use crate::service::common::{Service, StreamResponse};
2use crate::snapshot::type_url::SCOPED_ROUTE;
3use data_plane_api::envoy::service::discovery::v3::{
4 DeltaDiscoveryRequest, DeltaDiscoveryResponse, DiscoveryRequest, DiscoveryResponse,
5};
6use data_plane_api::envoy::service::route::v3::scoped_routes_discovery_service_server::ScopedRoutesDiscoveryService;
7use tonic::{Request, Response, Status, Streaming};
8
9#[tonic::async_trait]
10impl ScopedRoutesDiscoveryService for Service {
11 type StreamScopedRoutesStream = StreamResponse<DiscoveryResponse>;
12
13 async fn stream_scoped_routes(
14 &self,
15 req: Request<Streaming<DiscoveryRequest>>,
16 ) -> Result<Response<Self::StreamScopedRoutesStream>, Status> {
17 self.stream(req, SCOPED_ROUTE)
18 }
19
20 type DeltaScopedRoutesStream = StreamResponse<DeltaDiscoveryResponse>;
21
22 async fn delta_scoped_routes(
23 &self,
24 _: Request<Streaming<DeltaDiscoveryRequest>>,
25 ) -> Result<Response<Self::DeltaScopedRoutesStream>, Status> {
26 unimplemented!()
27 }
28
29 async fn fetch_scoped_routes(
30 &self,
31 req: Request<DiscoveryRequest>,
32 ) -> Result<Response<DiscoveryResponse>, Status> {
33 self.fetch(req.get_ref(), SCOPED_ROUTE).await
34 }
35}