#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetAddonsRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetAddonsResponse {
#[prost(message, repeated, tag = "1")]
pub addons: ::prost::alloc::vec::Vec<super::super::objects::v1alpha1::Addon>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetAddonDetailsRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetAddonDetailsResponse {
#[prost(message, optional, tag = "1")]
pub addon: ::core::option::Option<super::super::objects::v1alpha1::Addon>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetAddonEnabledRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetAddonEnabledResponse {}
pub mod addons_service_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
use tonic::codegen::http::Uri;
#[derive(Debug, Clone)]
pub struct AddonsServiceClient<T> {
inner: tonic::client::Grpc<T>,
}
impl AddonsServiceClient<tonic::transport::Channel> {
pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
where
D: std::convert::TryInto<tonic::transport::Endpoint>,
D::Error: Into<StdError>,
{
let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
Ok(Self::new(conn))
}
}
impl<T> AddonsServiceClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> AddonsServiceClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
>>::Error: Into<StdError> + Send + Sync,
{
AddonsServiceClient::new(InterceptedService::new(inner, interceptor))
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
pub async fn get_addons(
&mut self,
request: impl tonic::IntoRequest<super::GetAddonsRequest>,
) -> Result<tonic::Response<super::GetAddonsResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.AddonsService/GetAddons",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_addon_details(
&mut self,
request: impl tonic::IntoRequest<super::GetAddonDetailsRequest>,
) -> Result<tonic::Response<super::GetAddonDetailsResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.AddonsService/GetAddonDetails",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn set_addon_enabled(
&mut self,
request: impl tonic::IntoRequest<super::SetAddonEnabledRequest>,
) -> Result<tonic::Response<super::SetAddonEnabledResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.AddonsService/SetAddonEnabled",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}
pub mod addons_service_server {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
#[async_trait]
pub trait AddonsService: Send + Sync + 'static {
async fn get_addons(
&self,
request: tonic::Request<super::GetAddonsRequest>,
) -> Result<tonic::Response<super::GetAddonsResponse>, tonic::Status>;
async fn get_addon_details(
&self,
request: tonic::Request<super::GetAddonDetailsRequest>,
) -> Result<tonic::Response<super::GetAddonDetailsResponse>, tonic::Status>;
async fn set_addon_enabled(
&self,
request: tonic::Request<super::SetAddonEnabledRequest>,
) -> Result<tonic::Response<super::SetAddonEnabledResponse>, tonic::Status>;
}
#[derive(Debug)]
pub struct AddonsServiceServer<T: AddonsService> {
inner: _Inner<T>,
accept_compression_encodings: EnabledCompressionEncodings,
send_compression_encodings: EnabledCompressionEncodings,
}
struct _Inner<T>(Arc<T>);
impl<T: AddonsService> AddonsServiceServer<T> {
pub fn new(inner: T) -> Self {
Self::from_arc(Arc::new(inner))
}
pub fn from_arc(inner: Arc<T>) -> Self {
let inner = _Inner(inner);
Self {
inner,
accept_compression_encodings: Default::default(),
send_compression_encodings: Default::default(),
}
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> InterceptedService<Self, F>
where
F: tonic::service::Interceptor,
{
InterceptedService::new(Self::new(inner), interceptor)
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.accept_compression_encodings.enable(encoding);
self
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.send_compression_encodings.enable(encoding);
self
}
}
impl<T, B> tonic::codegen::Service<http::Request<B>> for AddonsServiceServer<T>
where
T: AddonsService,
B: Body + Send + 'static,
B::Error: Into<StdError> + Send + 'static,
{
type Response = http::Response<tonic::body::BoxBody>;
type Error = std::convert::Infallible;
type Future = BoxFuture<Self::Response, Self::Error>;
fn poll_ready(
&mut self,
_cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>> {
Poll::Ready(Ok(()))
}
fn call(&mut self, req: http::Request<B>) -> Self::Future {
let inner = self.inner.clone();
match req.uri().path() {
"/music.v1alpha1.AddonsService/GetAddons" => {
#[allow(non_camel_case_types)]
struct GetAddonsSvc<T: AddonsService>(pub Arc<T>);
impl<
T: AddonsService,
> tonic::server::UnaryService<super::GetAddonsRequest>
for GetAddonsSvc<T> {
type Response = super::GetAddonsResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetAddonsRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).get_addons(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetAddonsSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.AddonsService/GetAddonDetails" => {
#[allow(non_camel_case_types)]
struct GetAddonDetailsSvc<T: AddonsService>(pub Arc<T>);
impl<
T: AddonsService,
> tonic::server::UnaryService<super::GetAddonDetailsRequest>
for GetAddonDetailsSvc<T> {
type Response = super::GetAddonDetailsResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetAddonDetailsRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).get_addon_details(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetAddonDetailsSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.AddonsService/SetAddonEnabled" => {
#[allow(non_camel_case_types)]
struct SetAddonEnabledSvc<T: AddonsService>(pub Arc<T>);
impl<
T: AddonsService,
> tonic::server::UnaryService<super::SetAddonEnabledRequest>
for SetAddonEnabledSvc<T> {
type Response = super::SetAddonEnabledResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::SetAddonEnabledRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).set_addon_enabled(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = SetAddonEnabledSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
_ => {
Box::pin(async move {
Ok(
http::Response::builder()
.status(200)
.header("grpc-status", "12")
.header("content-type", "application/grpc")
.body(empty_body())
.unwrap(),
)
})
}
}
}
}
impl<T: AddonsService> Clone for AddonsServiceServer<T> {
fn clone(&self) -> Self {
let inner = self.inner.clone();
Self {
inner,
accept_compression_encodings: self.accept_compression_encodings,
send_compression_encodings: self.send_compression_encodings,
}
}
}
impl<T: AddonsService> Clone for _Inner<T> {
fn clone(&self) -> Self {
Self(self.0.clone())
}
}
impl<T: std::fmt::Debug> std::fmt::Debug for _Inner<T> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{:?}", self.0)
}
}
impl<T: AddonsService> tonic::server::NamedService for AddonsServiceServer<T> {
const NAME: &'static str = "music.v1alpha1.AddonsService";
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetVersionRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetVersionResponse {
#[prost(string, tag = "1")]
pub version: ::prost::alloc::string::String,
}
pub mod core_service_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
use tonic::codegen::http::Uri;
#[derive(Debug, Clone)]
pub struct CoreServiceClient<T> {
inner: tonic::client::Grpc<T>,
}
impl CoreServiceClient<tonic::transport::Channel> {
pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
where
D: std::convert::TryInto<tonic::transport::Endpoint>,
D::Error: Into<StdError>,
{
let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
Ok(Self::new(conn))
}
}
impl<T> CoreServiceClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> CoreServiceClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
>>::Error: Into<StdError> + Send + Sync,
{
CoreServiceClient::new(InterceptedService::new(inner, interceptor))
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
pub async fn get_version(
&mut self,
request: impl tonic::IntoRequest<super::GetVersionRequest>,
) -> Result<tonic::Response<super::GetVersionResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.CoreService/GetVersion",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}
pub mod core_service_server {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
#[async_trait]
pub trait CoreService: Send + Sync + 'static {
async fn get_version(
&self,
request: tonic::Request<super::GetVersionRequest>,
) -> Result<tonic::Response<super::GetVersionResponse>, tonic::Status>;
}
#[derive(Debug)]
pub struct CoreServiceServer<T: CoreService> {
inner: _Inner<T>,
accept_compression_encodings: EnabledCompressionEncodings,
send_compression_encodings: EnabledCompressionEncodings,
}
struct _Inner<T>(Arc<T>);
impl<T: CoreService> CoreServiceServer<T> {
pub fn new(inner: T) -> Self {
Self::from_arc(Arc::new(inner))
}
pub fn from_arc(inner: Arc<T>) -> Self {
let inner = _Inner(inner);
Self {
inner,
accept_compression_encodings: Default::default(),
send_compression_encodings: Default::default(),
}
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> InterceptedService<Self, F>
where
F: tonic::service::Interceptor,
{
InterceptedService::new(Self::new(inner), interceptor)
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.accept_compression_encodings.enable(encoding);
self
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.send_compression_encodings.enable(encoding);
self
}
}
impl<T, B> tonic::codegen::Service<http::Request<B>> for CoreServiceServer<T>
where
T: CoreService,
B: Body + Send + 'static,
B::Error: Into<StdError> + Send + 'static,
{
type Response = http::Response<tonic::body::BoxBody>;
type Error = std::convert::Infallible;
type Future = BoxFuture<Self::Response, Self::Error>;
fn poll_ready(
&mut self,
_cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>> {
Poll::Ready(Ok(()))
}
fn call(&mut self, req: http::Request<B>) -> Self::Future {
let inner = self.inner.clone();
match req.uri().path() {
"/music.v1alpha1.CoreService/GetVersion" => {
#[allow(non_camel_case_types)]
struct GetVersionSvc<T: CoreService>(pub Arc<T>);
impl<
T: CoreService,
> tonic::server::UnaryService<super::GetVersionRequest>
for GetVersionSvc<T> {
type Response = super::GetVersionResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetVersionRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).get_version(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetVersionSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
_ => {
Box::pin(async move {
Ok(
http::Response::builder()
.status(200)
.header("grpc-status", "12")
.header("content-type", "application/grpc")
.body(empty_body())
.unwrap(),
)
})
}
}
}
}
impl<T: CoreService> Clone for CoreServiceServer<T> {
fn clone(&self) -> Self {
let inner = self.inner.clone();
Self {
inner,
accept_compression_encodings: self.accept_compression_encodings,
send_compression_encodings: self.send_compression_encodings,
}
}
}
impl<T: CoreService> Clone for _Inner<T> {
fn clone(&self) -> Self {
Self(self.0.clone())
}
}
impl<T: std::fmt::Debug> std::fmt::Debug for _Inner<T> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{:?}", self.0)
}
}
impl<T: CoreService> tonic::server::NamedService for CoreServiceServer<T> {
const NAME: &'static str = "music.v1alpha1.CoreService";
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetHistoryRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetHistoryResponse {}
pub mod history_service_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
use tonic::codegen::http::Uri;
#[derive(Debug, Clone)]
pub struct HistoryServiceClient<T> {
inner: tonic::client::Grpc<T>,
}
impl HistoryServiceClient<tonic::transport::Channel> {
pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
where
D: std::convert::TryInto<tonic::transport::Endpoint>,
D::Error: Into<StdError>,
{
let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
Ok(Self::new(conn))
}
}
impl<T> HistoryServiceClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> HistoryServiceClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
>>::Error: Into<StdError> + Send + Sync,
{
HistoryServiceClient::new(InterceptedService::new(inner, interceptor))
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
pub async fn get_history(
&mut self,
request: impl tonic::IntoRequest<super::GetHistoryRequest>,
) -> Result<tonic::Response<super::GetHistoryResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.HistoryService/GetHistory",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}
pub mod history_service_server {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
#[async_trait]
pub trait HistoryService: Send + Sync + 'static {
async fn get_history(
&self,
request: tonic::Request<super::GetHistoryRequest>,
) -> Result<tonic::Response<super::GetHistoryResponse>, tonic::Status>;
}
#[derive(Debug)]
pub struct HistoryServiceServer<T: HistoryService> {
inner: _Inner<T>,
accept_compression_encodings: EnabledCompressionEncodings,
send_compression_encodings: EnabledCompressionEncodings,
}
struct _Inner<T>(Arc<T>);
impl<T: HistoryService> HistoryServiceServer<T> {
pub fn new(inner: T) -> Self {
Self::from_arc(Arc::new(inner))
}
pub fn from_arc(inner: Arc<T>) -> Self {
let inner = _Inner(inner);
Self {
inner,
accept_compression_encodings: Default::default(),
send_compression_encodings: Default::default(),
}
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> InterceptedService<Self, F>
where
F: tonic::service::Interceptor,
{
InterceptedService::new(Self::new(inner), interceptor)
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.accept_compression_encodings.enable(encoding);
self
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.send_compression_encodings.enable(encoding);
self
}
}
impl<T, B> tonic::codegen::Service<http::Request<B>> for HistoryServiceServer<T>
where
T: HistoryService,
B: Body + Send + 'static,
B::Error: Into<StdError> + Send + 'static,
{
type Response = http::Response<tonic::body::BoxBody>;
type Error = std::convert::Infallible;
type Future = BoxFuture<Self::Response, Self::Error>;
fn poll_ready(
&mut self,
_cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>> {
Poll::Ready(Ok(()))
}
fn call(&mut self, req: http::Request<B>) -> Self::Future {
let inner = self.inner.clone();
match req.uri().path() {
"/music.v1alpha1.HistoryService/GetHistory" => {
#[allow(non_camel_case_types)]
struct GetHistorySvc<T: HistoryService>(pub Arc<T>);
impl<
T: HistoryService,
> tonic::server::UnaryService<super::GetHistoryRequest>
for GetHistorySvc<T> {
type Response = super::GetHistoryResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetHistoryRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).get_history(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetHistorySvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
_ => {
Box::pin(async move {
Ok(
http::Response::builder()
.status(200)
.header("grpc-status", "12")
.header("content-type", "application/grpc")
.body(empty_body())
.unwrap(),
)
})
}
}
}
}
impl<T: HistoryService> Clone for HistoryServiceServer<T> {
fn clone(&self) -> Self {
let inner = self.inner.clone();
Self {
inner,
accept_compression_encodings: self.accept_compression_encodings,
send_compression_encodings: self.send_compression_encodings,
}
}
}
impl<T: HistoryService> Clone for _Inner<T> {
fn clone(&self) -> Self {
Self(self.0.clone())
}
}
impl<T: std::fmt::Debug> std::fmt::Debug for _Inner<T> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{:?}", self.0)
}
}
impl<T: HistoryService> tonic::server::NamedService for HistoryServiceServer<T> {
const NAME: &'static str = "music.v1alpha1.HistoryService";
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScanRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScanResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SearchRequest {
#[prost(string, tag = "1")]
pub query: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SearchResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetAlbumsRequest {
#[prost(int32, tag = "1")]
pub limit: i32,
#[prost(int32, tag = "2")]
pub offset: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetAlbumsResponse {
#[prost(message, repeated, tag = "1")]
pub albums: ::prost::alloc::vec::Vec<super::super::metadata::v1alpha1::Album>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetArtistsRequest {
#[prost(int32, tag = "1")]
pub limit: i32,
#[prost(int32, tag = "2")]
pub offset: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetArtistsResponse {
#[prost(message, repeated, tag = "1")]
pub artists: ::prost::alloc::vec::Vec<super::super::metadata::v1alpha1::Artist>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTracksRequest {
#[prost(int32, tag = "1")]
pub limit: i32,
#[prost(int32, tag = "2")]
pub offset: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTracksResponse {
#[prost(message, repeated, tag = "1")]
pub tracks: ::prost::alloc::vec::Vec<super::super::metadata::v1alpha1::Track>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetAlbumDetailsRequest {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetAlbumDetailsResponse {
#[prost(message, optional, tag = "1")]
pub album: ::core::option::Option<super::super::metadata::v1alpha1::Album>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetArtistDetailsRequest {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetArtistDetailsResponse {
#[prost(message, optional, tag = "1")]
pub artist: ::core::option::Option<super::super::metadata::v1alpha1::Artist>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTrackDetailsRequest {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTrackDetailsResponse {
#[prost(message, optional, tag = "1")]
pub track: ::core::option::Option<super::super::metadata::v1alpha1::Track>,
}
pub mod library_service_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
use tonic::codegen::http::Uri;
#[derive(Debug, Clone)]
pub struct LibraryServiceClient<T> {
inner: tonic::client::Grpc<T>,
}
impl LibraryServiceClient<tonic::transport::Channel> {
pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
where
D: std::convert::TryInto<tonic::transport::Endpoint>,
D::Error: Into<StdError>,
{
let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
Ok(Self::new(conn))
}
}
impl<T> LibraryServiceClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> LibraryServiceClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
>>::Error: Into<StdError> + Send + Sync,
{
LibraryServiceClient::new(InterceptedService::new(inner, interceptor))
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
pub async fn scan(
&mut self,
request: impl tonic::IntoRequest<super::ScanRequest>,
) -> Result<tonic::Response<super::ScanResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.LibraryService/Scan",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn search(
&mut self,
request: impl tonic::IntoRequest<super::SearchRequest>,
) -> Result<tonic::Response<super::SearchResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.LibraryService/Search",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_albums(
&mut self,
request: impl tonic::IntoRequest<super::GetAlbumsRequest>,
) -> Result<tonic::Response<super::GetAlbumsResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.LibraryService/GetAlbums",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_album_details(
&mut self,
request: impl tonic::IntoRequest<super::GetAlbumDetailsRequest>,
) -> Result<tonic::Response<super::GetAlbumDetailsResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.LibraryService/GetAlbumDetails",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_tracks(
&mut self,
request: impl tonic::IntoRequest<super::GetTracksRequest>,
) -> Result<tonic::Response<super::GetTracksResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.LibraryService/GetTracks",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_track_details(
&mut self,
request: impl tonic::IntoRequest<super::GetTrackDetailsRequest>,
) -> Result<tonic::Response<super::GetTrackDetailsResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.LibraryService/GetTrackDetails",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_artists(
&mut self,
request: impl tonic::IntoRequest<super::GetArtistsRequest>,
) -> Result<tonic::Response<super::GetArtistsResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.LibraryService/GetArtists",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_artist_details(
&mut self,
request: impl tonic::IntoRequest<super::GetArtistDetailsRequest>,
) -> Result<tonic::Response<super::GetArtistDetailsResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.LibraryService/GetArtistDetails",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}
pub mod library_service_server {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
#[async_trait]
pub trait LibraryService: Send + Sync + 'static {
async fn scan(
&self,
request: tonic::Request<super::ScanRequest>,
) -> Result<tonic::Response<super::ScanResponse>, tonic::Status>;
async fn search(
&self,
request: tonic::Request<super::SearchRequest>,
) -> Result<tonic::Response<super::SearchResponse>, tonic::Status>;
async fn get_albums(
&self,
request: tonic::Request<super::GetAlbumsRequest>,
) -> Result<tonic::Response<super::GetAlbumsResponse>, tonic::Status>;
async fn get_album_details(
&self,
request: tonic::Request<super::GetAlbumDetailsRequest>,
) -> Result<tonic::Response<super::GetAlbumDetailsResponse>, tonic::Status>;
async fn get_tracks(
&self,
request: tonic::Request<super::GetTracksRequest>,
) -> Result<tonic::Response<super::GetTracksResponse>, tonic::Status>;
async fn get_track_details(
&self,
request: tonic::Request<super::GetTrackDetailsRequest>,
) -> Result<tonic::Response<super::GetTrackDetailsResponse>, tonic::Status>;
async fn get_artists(
&self,
request: tonic::Request<super::GetArtistsRequest>,
) -> Result<tonic::Response<super::GetArtistsResponse>, tonic::Status>;
async fn get_artist_details(
&self,
request: tonic::Request<super::GetArtistDetailsRequest>,
) -> Result<tonic::Response<super::GetArtistDetailsResponse>, tonic::Status>;
}
#[derive(Debug)]
pub struct LibraryServiceServer<T: LibraryService> {
inner: _Inner<T>,
accept_compression_encodings: EnabledCompressionEncodings,
send_compression_encodings: EnabledCompressionEncodings,
}
struct _Inner<T>(Arc<T>);
impl<T: LibraryService> LibraryServiceServer<T> {
pub fn new(inner: T) -> Self {
Self::from_arc(Arc::new(inner))
}
pub fn from_arc(inner: Arc<T>) -> Self {
let inner = _Inner(inner);
Self {
inner,
accept_compression_encodings: Default::default(),
send_compression_encodings: Default::default(),
}
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> InterceptedService<Self, F>
where
F: tonic::service::Interceptor,
{
InterceptedService::new(Self::new(inner), interceptor)
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.accept_compression_encodings.enable(encoding);
self
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.send_compression_encodings.enable(encoding);
self
}
}
impl<T, B> tonic::codegen::Service<http::Request<B>> for LibraryServiceServer<T>
where
T: LibraryService,
B: Body + Send + 'static,
B::Error: Into<StdError> + Send + 'static,
{
type Response = http::Response<tonic::body::BoxBody>;
type Error = std::convert::Infallible;
type Future = BoxFuture<Self::Response, Self::Error>;
fn poll_ready(
&mut self,
_cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>> {
Poll::Ready(Ok(()))
}
fn call(&mut self, req: http::Request<B>) -> Self::Future {
let inner = self.inner.clone();
match req.uri().path() {
"/music.v1alpha1.LibraryService/Scan" => {
#[allow(non_camel_case_types)]
struct ScanSvc<T: LibraryService>(pub Arc<T>);
impl<
T: LibraryService,
> tonic::server::UnaryService<super::ScanRequest> for ScanSvc<T> {
type Response = super::ScanResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::ScanRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).scan(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = ScanSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.LibraryService/Search" => {
#[allow(non_camel_case_types)]
struct SearchSvc<T: LibraryService>(pub Arc<T>);
impl<
T: LibraryService,
> tonic::server::UnaryService<super::SearchRequest>
for SearchSvc<T> {
type Response = super::SearchResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::SearchRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).search(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = SearchSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.LibraryService/GetAlbums" => {
#[allow(non_camel_case_types)]
struct GetAlbumsSvc<T: LibraryService>(pub Arc<T>);
impl<
T: LibraryService,
> tonic::server::UnaryService<super::GetAlbumsRequest>
for GetAlbumsSvc<T> {
type Response = super::GetAlbumsResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetAlbumsRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).get_albums(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetAlbumsSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.LibraryService/GetAlbumDetails" => {
#[allow(non_camel_case_types)]
struct GetAlbumDetailsSvc<T: LibraryService>(pub Arc<T>);
impl<
T: LibraryService,
> tonic::server::UnaryService<super::GetAlbumDetailsRequest>
for GetAlbumDetailsSvc<T> {
type Response = super::GetAlbumDetailsResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetAlbumDetailsRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).get_album_details(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetAlbumDetailsSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.LibraryService/GetTracks" => {
#[allow(non_camel_case_types)]
struct GetTracksSvc<T: LibraryService>(pub Arc<T>);
impl<
T: LibraryService,
> tonic::server::UnaryService<super::GetTracksRequest>
for GetTracksSvc<T> {
type Response = super::GetTracksResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetTracksRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).get_tracks(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetTracksSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.LibraryService/GetTrackDetails" => {
#[allow(non_camel_case_types)]
struct GetTrackDetailsSvc<T: LibraryService>(pub Arc<T>);
impl<
T: LibraryService,
> tonic::server::UnaryService<super::GetTrackDetailsRequest>
for GetTrackDetailsSvc<T> {
type Response = super::GetTrackDetailsResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetTrackDetailsRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).get_track_details(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetTrackDetailsSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.LibraryService/GetArtists" => {
#[allow(non_camel_case_types)]
struct GetArtistsSvc<T: LibraryService>(pub Arc<T>);
impl<
T: LibraryService,
> tonic::server::UnaryService<super::GetArtistsRequest>
for GetArtistsSvc<T> {
type Response = super::GetArtistsResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetArtistsRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).get_artists(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetArtistsSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.LibraryService/GetArtistDetails" => {
#[allow(non_camel_case_types)]
struct GetArtistDetailsSvc<T: LibraryService>(pub Arc<T>);
impl<
T: LibraryService,
> tonic::server::UnaryService<super::GetArtistDetailsRequest>
for GetArtistDetailsSvc<T> {
type Response = super::GetArtistDetailsResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetArtistDetailsRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).get_artist_details(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetArtistDetailsSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
_ => {
Box::pin(async move {
Ok(
http::Response::builder()
.status(200)
.header("grpc-status", "12")
.header("content-type", "application/grpc")
.body(empty_body())
.unwrap(),
)
})
}
}
}
}
impl<T: LibraryService> Clone for LibraryServiceServer<T> {
fn clone(&self) -> Self {
let inner = self.inner.clone();
Self {
inner,
accept_compression_encodings: self.accept_compression_encodings,
send_compression_encodings: self.send_compression_encodings,
}
}
}
impl<T: LibraryService> Clone for _Inner<T> {
fn clone(&self) -> Self {
Self(self.0.clone())
}
}
impl<T: std::fmt::Debug> std::fmt::Debug for _Inner<T> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{:?}", self.0)
}
}
impl<T: LibraryService> tonic::server::NamedService for LibraryServiceServer<T> {
const NAME: &'static str = "music.v1alpha1.LibraryService";
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetMuteRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetMuteResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetMuteRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetMuteResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetVolumeRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetVolumeResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetVolumeRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetVolumeResponse {}
pub mod mixer_service_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
use tonic::codegen::http::Uri;
#[derive(Debug, Clone)]
pub struct MixerServiceClient<T> {
inner: tonic::client::Grpc<T>,
}
impl MixerServiceClient<tonic::transport::Channel> {
pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
where
D: std::convert::TryInto<tonic::transport::Endpoint>,
D::Error: Into<StdError>,
{
let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
Ok(Self::new(conn))
}
}
impl<T> MixerServiceClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> MixerServiceClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
>>::Error: Into<StdError> + Send + Sync,
{
MixerServiceClient::new(InterceptedService::new(inner, interceptor))
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
pub async fn get_mute(
&mut self,
request: impl tonic::IntoRequest<super::GetMuteRequest>,
) -> Result<tonic::Response<super::GetMuteResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.MixerService/GetMute",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn set_mute(
&mut self,
request: impl tonic::IntoRequest<super::SetMuteRequest>,
) -> Result<tonic::Response<super::SetMuteResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.MixerService/SetMute",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_volume(
&mut self,
request: impl tonic::IntoRequest<super::GetVolumeRequest>,
) -> Result<tonic::Response<super::GetVolumeResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.MixerService/GetVolume",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn set_volume(
&mut self,
request: impl tonic::IntoRequest<super::SetVolumeRequest>,
) -> Result<tonic::Response<super::SetVolumeResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.MixerService/SetVolume",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}
pub mod mixer_service_server {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
#[async_trait]
pub trait MixerService: Send + Sync + 'static {
async fn get_mute(
&self,
request: tonic::Request<super::GetMuteRequest>,
) -> Result<tonic::Response<super::GetMuteResponse>, tonic::Status>;
async fn set_mute(
&self,
request: tonic::Request<super::SetMuteRequest>,
) -> Result<tonic::Response<super::SetMuteResponse>, tonic::Status>;
async fn get_volume(
&self,
request: tonic::Request<super::GetVolumeRequest>,
) -> Result<tonic::Response<super::GetVolumeResponse>, tonic::Status>;
async fn set_volume(
&self,
request: tonic::Request<super::SetVolumeRequest>,
) -> Result<tonic::Response<super::SetVolumeResponse>, tonic::Status>;
}
#[derive(Debug)]
pub struct MixerServiceServer<T: MixerService> {
inner: _Inner<T>,
accept_compression_encodings: EnabledCompressionEncodings,
send_compression_encodings: EnabledCompressionEncodings,
}
struct _Inner<T>(Arc<T>);
impl<T: MixerService> MixerServiceServer<T> {
pub fn new(inner: T) -> Self {
Self::from_arc(Arc::new(inner))
}
pub fn from_arc(inner: Arc<T>) -> Self {
let inner = _Inner(inner);
Self {
inner,
accept_compression_encodings: Default::default(),
send_compression_encodings: Default::default(),
}
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> InterceptedService<Self, F>
where
F: tonic::service::Interceptor,
{
InterceptedService::new(Self::new(inner), interceptor)
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.accept_compression_encodings.enable(encoding);
self
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.send_compression_encodings.enable(encoding);
self
}
}
impl<T, B> tonic::codegen::Service<http::Request<B>> for MixerServiceServer<T>
where
T: MixerService,
B: Body + Send + 'static,
B::Error: Into<StdError> + Send + 'static,
{
type Response = http::Response<tonic::body::BoxBody>;
type Error = std::convert::Infallible;
type Future = BoxFuture<Self::Response, Self::Error>;
fn poll_ready(
&mut self,
_cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>> {
Poll::Ready(Ok(()))
}
fn call(&mut self, req: http::Request<B>) -> Self::Future {
let inner = self.inner.clone();
match req.uri().path() {
"/music.v1alpha1.MixerService/GetMute" => {
#[allow(non_camel_case_types)]
struct GetMuteSvc<T: MixerService>(pub Arc<T>);
impl<
T: MixerService,
> tonic::server::UnaryService<super::GetMuteRequest>
for GetMuteSvc<T> {
type Response = super::GetMuteResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetMuteRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).get_mute(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetMuteSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.MixerService/SetMute" => {
#[allow(non_camel_case_types)]
struct SetMuteSvc<T: MixerService>(pub Arc<T>);
impl<
T: MixerService,
> tonic::server::UnaryService<super::SetMuteRequest>
for SetMuteSvc<T> {
type Response = super::SetMuteResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::SetMuteRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).set_mute(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = SetMuteSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.MixerService/GetVolume" => {
#[allow(non_camel_case_types)]
struct GetVolumeSvc<T: MixerService>(pub Arc<T>);
impl<
T: MixerService,
> tonic::server::UnaryService<super::GetVolumeRequest>
for GetVolumeSvc<T> {
type Response = super::GetVolumeResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetVolumeRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).get_volume(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetVolumeSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.MixerService/SetVolume" => {
#[allow(non_camel_case_types)]
struct SetVolumeSvc<T: MixerService>(pub Arc<T>);
impl<
T: MixerService,
> tonic::server::UnaryService<super::SetVolumeRequest>
for SetVolumeSvc<T> {
type Response = super::SetVolumeResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::SetVolumeRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).set_volume(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = SetVolumeSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
_ => {
Box::pin(async move {
Ok(
http::Response::builder()
.status(200)
.header("grpc-status", "12")
.header("content-type", "application/grpc")
.body(empty_body())
.unwrap(),
)
})
}
}
}
}
impl<T: MixerService> Clone for MixerServiceServer<T> {
fn clone(&self) -> Self {
let inner = self.inner.clone();
Self {
inner,
accept_compression_encodings: self.accept_compression_encodings,
send_compression_encodings: self.send_compression_encodings,
}
}
}
impl<T: MixerService> Clone for _Inner<T> {
fn clone(&self) -> Self {
Self(self.0.clone())
}
}
impl<T: std::fmt::Debug> std::fmt::Debug for _Inner<T> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{:?}", self.0)
}
}
impl<T: MixerService> tonic::server::NamedService for MixerServiceServer<T> {
const NAME: &'static str = "music.v1alpha1.MixerService";
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetCurrentlyPlayingSongRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetCurrentlyPlayingSongResponse {
#[prost(message, optional, tag = "1")]
pub track: ::core::option::Option<super::super::metadata::v1alpha1::Track>,
#[prost(uint32, tag = "2")]
pub index: u32,
#[prost(uint32, tag = "3")]
pub position_ms: u32,
#[prost(bool, tag = "4")]
pub is_playing: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPlaybackStateRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPlaybackStateResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTimePositionRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTimePositionResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NextRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NextResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PauseRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PauseResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PreviousRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PreviousResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SeekRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SeekResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StopRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StopResponse {}
pub mod playback_service_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
use tonic::codegen::http::Uri;
#[derive(Debug, Clone)]
pub struct PlaybackServiceClient<T> {
inner: tonic::client::Grpc<T>,
}
impl PlaybackServiceClient<tonic::transport::Channel> {
pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
where
D: std::convert::TryInto<tonic::transport::Endpoint>,
D::Error: Into<StdError>,
{
let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
Ok(Self::new(conn))
}
}
impl<T> PlaybackServiceClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> PlaybackServiceClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
>>::Error: Into<StdError> + Send + Sync,
{
PlaybackServiceClient::new(InterceptedService::new(inner, interceptor))
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
pub async fn get_currently_playing_song(
&mut self,
request: impl tonic::IntoRequest<super::GetCurrentlyPlayingSongRequest>,
) -> Result<
tonic::Response<super::GetCurrentlyPlayingSongResponse>,
tonic::Status,
> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaybackService/GetCurrentlyPlayingSong",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_playback_state(
&mut self,
request: impl tonic::IntoRequest<super::GetPlaybackStateRequest>,
) -> Result<tonic::Response<super::GetPlaybackStateResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaybackService/GetPlaybackState",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_time_position(
&mut self,
request: impl tonic::IntoRequest<super::GetTimePositionRequest>,
) -> Result<tonic::Response<super::GetTimePositionResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaybackService/GetTimePosition",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn next(
&mut self,
request: impl tonic::IntoRequest<super::NextRequest>,
) -> Result<tonic::Response<super::NextResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaybackService/Next",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn pause(
&mut self,
request: impl tonic::IntoRequest<super::PauseRequest>,
) -> Result<tonic::Response<super::PauseResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaybackService/Pause",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn play(
&mut self,
request: impl tonic::IntoRequest<super::PlayRequest>,
) -> Result<tonic::Response<super::PlayResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaybackService/Play",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn previous(
&mut self,
request: impl tonic::IntoRequest<super::PreviousRequest>,
) -> Result<tonic::Response<super::PreviousResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaybackService/Previous",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn seek(
&mut self,
request: impl tonic::IntoRequest<super::SeekRequest>,
) -> Result<tonic::Response<super::SeekResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaybackService/Seek",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn stop(
&mut self,
request: impl tonic::IntoRequest<super::StopRequest>,
) -> Result<tonic::Response<super::StopResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaybackService/Stop",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}
pub mod playback_service_server {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
#[async_trait]
pub trait PlaybackService: Send + Sync + 'static {
async fn get_currently_playing_song(
&self,
request: tonic::Request<super::GetCurrentlyPlayingSongRequest>,
) -> Result<
tonic::Response<super::GetCurrentlyPlayingSongResponse>,
tonic::Status,
>;
async fn get_playback_state(
&self,
request: tonic::Request<super::GetPlaybackStateRequest>,
) -> Result<tonic::Response<super::GetPlaybackStateResponse>, tonic::Status>;
async fn get_time_position(
&self,
request: tonic::Request<super::GetTimePositionRequest>,
) -> Result<tonic::Response<super::GetTimePositionResponse>, tonic::Status>;
async fn next(
&self,
request: tonic::Request<super::NextRequest>,
) -> Result<tonic::Response<super::NextResponse>, tonic::Status>;
async fn pause(
&self,
request: tonic::Request<super::PauseRequest>,
) -> Result<tonic::Response<super::PauseResponse>, tonic::Status>;
async fn play(
&self,
request: tonic::Request<super::PlayRequest>,
) -> Result<tonic::Response<super::PlayResponse>, tonic::Status>;
async fn previous(
&self,
request: tonic::Request<super::PreviousRequest>,
) -> Result<tonic::Response<super::PreviousResponse>, tonic::Status>;
async fn seek(
&self,
request: tonic::Request<super::SeekRequest>,
) -> Result<tonic::Response<super::SeekResponse>, tonic::Status>;
async fn stop(
&self,
request: tonic::Request<super::StopRequest>,
) -> Result<tonic::Response<super::StopResponse>, tonic::Status>;
}
#[derive(Debug)]
pub struct PlaybackServiceServer<T: PlaybackService> {
inner: _Inner<T>,
accept_compression_encodings: EnabledCompressionEncodings,
send_compression_encodings: EnabledCompressionEncodings,
}
struct _Inner<T>(Arc<T>);
impl<T: PlaybackService> PlaybackServiceServer<T> {
pub fn new(inner: T) -> Self {
Self::from_arc(Arc::new(inner))
}
pub fn from_arc(inner: Arc<T>) -> Self {
let inner = _Inner(inner);
Self {
inner,
accept_compression_encodings: Default::default(),
send_compression_encodings: Default::default(),
}
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> InterceptedService<Self, F>
where
F: tonic::service::Interceptor,
{
InterceptedService::new(Self::new(inner), interceptor)
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.accept_compression_encodings.enable(encoding);
self
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.send_compression_encodings.enable(encoding);
self
}
}
impl<T, B> tonic::codegen::Service<http::Request<B>> for PlaybackServiceServer<T>
where
T: PlaybackService,
B: Body + Send + 'static,
B::Error: Into<StdError> + Send + 'static,
{
type Response = http::Response<tonic::body::BoxBody>;
type Error = std::convert::Infallible;
type Future = BoxFuture<Self::Response, Self::Error>;
fn poll_ready(
&mut self,
_cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>> {
Poll::Ready(Ok(()))
}
fn call(&mut self, req: http::Request<B>) -> Self::Future {
let inner = self.inner.clone();
match req.uri().path() {
"/music.v1alpha1.PlaybackService/GetCurrentlyPlayingSong" => {
#[allow(non_camel_case_types)]
struct GetCurrentlyPlayingSongSvc<T: PlaybackService>(pub Arc<T>);
impl<
T: PlaybackService,
> tonic::server::UnaryService<super::GetCurrentlyPlayingSongRequest>
for GetCurrentlyPlayingSongSvc<T> {
type Response = super::GetCurrentlyPlayingSongResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<
super::GetCurrentlyPlayingSongRequest,
>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).get_currently_playing_song(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetCurrentlyPlayingSongSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaybackService/GetPlaybackState" => {
#[allow(non_camel_case_types)]
struct GetPlaybackStateSvc<T: PlaybackService>(pub Arc<T>);
impl<
T: PlaybackService,
> tonic::server::UnaryService<super::GetPlaybackStateRequest>
for GetPlaybackStateSvc<T> {
type Response = super::GetPlaybackStateResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetPlaybackStateRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).get_playback_state(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetPlaybackStateSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaybackService/GetTimePosition" => {
#[allow(non_camel_case_types)]
struct GetTimePositionSvc<T: PlaybackService>(pub Arc<T>);
impl<
T: PlaybackService,
> tonic::server::UnaryService<super::GetTimePositionRequest>
for GetTimePositionSvc<T> {
type Response = super::GetTimePositionResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetTimePositionRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).get_time_position(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetTimePositionSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaybackService/Next" => {
#[allow(non_camel_case_types)]
struct NextSvc<T: PlaybackService>(pub Arc<T>);
impl<
T: PlaybackService,
> tonic::server::UnaryService<super::NextRequest> for NextSvc<T> {
type Response = super::NextResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::NextRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).next(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = NextSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaybackService/Pause" => {
#[allow(non_camel_case_types)]
struct PauseSvc<T: PlaybackService>(pub Arc<T>);
impl<
T: PlaybackService,
> tonic::server::UnaryService<super::PauseRequest> for PauseSvc<T> {
type Response = super::PauseResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::PauseRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).pause(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = PauseSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaybackService/Play" => {
#[allow(non_camel_case_types)]
struct PlaySvc<T: PlaybackService>(pub Arc<T>);
impl<
T: PlaybackService,
> tonic::server::UnaryService<super::PlayRequest> for PlaySvc<T> {
type Response = super::PlayResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::PlayRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).play(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = PlaySvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaybackService/Previous" => {
#[allow(non_camel_case_types)]
struct PreviousSvc<T: PlaybackService>(pub Arc<T>);
impl<
T: PlaybackService,
> tonic::server::UnaryService<super::PreviousRequest>
for PreviousSvc<T> {
type Response = super::PreviousResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::PreviousRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).previous(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = PreviousSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaybackService/Seek" => {
#[allow(non_camel_case_types)]
struct SeekSvc<T: PlaybackService>(pub Arc<T>);
impl<
T: PlaybackService,
> tonic::server::UnaryService<super::SeekRequest> for SeekSvc<T> {
type Response = super::SeekResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::SeekRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).seek(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = SeekSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaybackService/Stop" => {
#[allow(non_camel_case_types)]
struct StopSvc<T: PlaybackService>(pub Arc<T>);
impl<
T: PlaybackService,
> tonic::server::UnaryService<super::StopRequest> for StopSvc<T> {
type Response = super::StopResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::StopRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).stop(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = StopSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
_ => {
Box::pin(async move {
Ok(
http::Response::builder()
.status(200)
.header("grpc-status", "12")
.header("content-type", "application/grpc")
.body(empty_body())
.unwrap(),
)
})
}
}
}
}
impl<T: PlaybackService> Clone for PlaybackServiceServer<T> {
fn clone(&self) -> Self {
let inner = self.inner.clone();
Self {
inner,
accept_compression_encodings: self.accept_compression_encodings,
send_compression_encodings: self.send_compression_encodings,
}
}
}
impl<T: PlaybackService> Clone for _Inner<T> {
fn clone(&self) -> Self {
Self(self.0.clone())
}
}
impl<T: std::fmt::Debug> std::fmt::Debug for _Inner<T> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{:?}", self.0)
}
}
impl<T: PlaybackService> tonic::server::NamedService for PlaybackServiceServer<T> {
const NAME: &'static str = "music.v1alpha1.PlaybackService";
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub tracks: ::prost::alloc::vec::Vec<super::super::metadata::v1alpha1::Track>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateResponse {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "3")]
pub tracks: ::prost::alloc::vec::Vec<super::super::metadata::v1alpha1::Track>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteRequest {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteResponse {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetItemsRequest {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetItemsResponse {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "3")]
pub tracks: ::prost::alloc::vec::Vec<super::super::metadata::v1alpha1::Track>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RenameRequest {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RenameResponse {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RemoveItemRequest {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub track_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RemoveItemResponse {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "3")]
pub tracks: ::prost::alloc::vec::Vec<super::super::metadata::v1alpha1::Track>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddItemRequest {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub track_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddItemResponse {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "3")]
pub tracks: ::prost::alloc::vec::Vec<super::super::metadata::v1alpha1::Track>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FindAllRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FindAllResponse {
#[prost(message, repeated, tag = "1")]
pub playlists: ::prost::alloc::vec::Vec<GetPlaylistDetailsResponse>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPlaylistDetailsRequest {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPlaylistDetailsResponse {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub description: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "4")]
pub tracks: ::prost::alloc::vec::Vec<super::super::metadata::v1alpha1::Track>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateFolderRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateFolderResponse {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RenameFolderRequest {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RenameFolderResponse {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteFolderRequest {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteFolderResponse {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FindAllFoldersRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FindAllFoldersResponse {
#[prost(message, repeated, tag = "1")]
pub folders: ::prost::alloc::vec::Vec<GetFolderDetailsResponse>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetFolderDetailsRequest {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetFolderDetailsResponse {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "3")]
pub playlists: ::prost::alloc::vec::Vec<super::super::objects::v1alpha1::Playlist>,
}
pub mod playlist_service_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
use tonic::codegen::http::Uri;
#[derive(Debug, Clone)]
pub struct PlaylistServiceClient<T> {
inner: tonic::client::Grpc<T>,
}
impl PlaylistServiceClient<tonic::transport::Channel> {
pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
where
D: std::convert::TryInto<tonic::transport::Endpoint>,
D::Error: Into<StdError>,
{
let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
Ok(Self::new(conn))
}
}
impl<T> PlaylistServiceClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> PlaylistServiceClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
>>::Error: Into<StdError> + Send + Sync,
{
PlaylistServiceClient::new(InterceptedService::new(inner, interceptor))
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
pub async fn create(
&mut self,
request: impl tonic::IntoRequest<super::CreateRequest>,
) -> Result<tonic::Response<super::CreateResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaylistService/Create",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn delete(
&mut self,
request: impl tonic::IntoRequest<super::DeleteRequest>,
) -> Result<tonic::Response<super::DeleteResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaylistService/Delete",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_items(
&mut self,
request: impl tonic::IntoRequest<super::GetItemsRequest>,
) -> Result<tonic::Response<super::GetItemsResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaylistService/GetItems",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn rename(
&mut self,
request: impl tonic::IntoRequest<super::RenameRequest>,
) -> Result<tonic::Response<super::RenameResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaylistService/Rename",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn remove_item(
&mut self,
request: impl tonic::IntoRequest<super::RemoveItemRequest>,
) -> Result<tonic::Response<super::RemoveItemResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaylistService/RemoveItem",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn add_item(
&mut self,
request: impl tonic::IntoRequest<super::AddItemRequest>,
) -> Result<tonic::Response<super::AddItemResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaylistService/AddItem",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn find_all(
&mut self,
request: impl tonic::IntoRequest<super::FindAllRequest>,
) -> Result<tonic::Response<super::FindAllResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaylistService/FindAll",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_playlist_details(
&mut self,
request: impl tonic::IntoRequest<super::GetPlaylistDetailsRequest>,
) -> Result<tonic::Response<super::GetPlaylistDetailsResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaylistService/GetPlaylistDetails",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn create_folder(
&mut self,
request: impl tonic::IntoRequest<super::CreateFolderRequest>,
) -> Result<tonic::Response<super::CreateFolderResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaylistService/CreateFolder",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn delete_folder(
&mut self,
request: impl tonic::IntoRequest<super::DeleteFolderRequest>,
) -> Result<tonic::Response<super::DeleteFolderResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaylistService/DeleteFolder",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn rename_folder(
&mut self,
request: impl tonic::IntoRequest<super::RenameFolderRequest>,
) -> Result<tonic::Response<super::RenameFolderResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaylistService/RenameFolder",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn find_all_folders(
&mut self,
request: impl tonic::IntoRequest<super::FindAllFoldersRequest>,
) -> Result<tonic::Response<super::FindAllFoldersResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaylistService/FindAllFolders",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_folder_details(
&mut self,
request: impl tonic::IntoRequest<super::GetFolderDetailsRequest>,
) -> Result<tonic::Response<super::GetFolderDetailsResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.PlaylistService/GetFolderDetails",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}
pub mod playlist_service_server {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
#[async_trait]
pub trait PlaylistService: Send + Sync + 'static {
async fn create(
&self,
request: tonic::Request<super::CreateRequest>,
) -> Result<tonic::Response<super::CreateResponse>, tonic::Status>;
async fn delete(
&self,
request: tonic::Request<super::DeleteRequest>,
) -> Result<tonic::Response<super::DeleteResponse>, tonic::Status>;
async fn get_items(
&self,
request: tonic::Request<super::GetItemsRequest>,
) -> Result<tonic::Response<super::GetItemsResponse>, tonic::Status>;
async fn rename(
&self,
request: tonic::Request<super::RenameRequest>,
) -> Result<tonic::Response<super::RenameResponse>, tonic::Status>;
async fn remove_item(
&self,
request: tonic::Request<super::RemoveItemRequest>,
) -> Result<tonic::Response<super::RemoveItemResponse>, tonic::Status>;
async fn add_item(
&self,
request: tonic::Request<super::AddItemRequest>,
) -> Result<tonic::Response<super::AddItemResponse>, tonic::Status>;
async fn find_all(
&self,
request: tonic::Request<super::FindAllRequest>,
) -> Result<tonic::Response<super::FindAllResponse>, tonic::Status>;
async fn get_playlist_details(
&self,
request: tonic::Request<super::GetPlaylistDetailsRequest>,
) -> Result<tonic::Response<super::GetPlaylistDetailsResponse>, tonic::Status>;
async fn create_folder(
&self,
request: tonic::Request<super::CreateFolderRequest>,
) -> Result<tonic::Response<super::CreateFolderResponse>, tonic::Status>;
async fn delete_folder(
&self,
request: tonic::Request<super::DeleteFolderRequest>,
) -> Result<tonic::Response<super::DeleteFolderResponse>, tonic::Status>;
async fn rename_folder(
&self,
request: tonic::Request<super::RenameFolderRequest>,
) -> Result<tonic::Response<super::RenameFolderResponse>, tonic::Status>;
async fn find_all_folders(
&self,
request: tonic::Request<super::FindAllFoldersRequest>,
) -> Result<tonic::Response<super::FindAllFoldersResponse>, tonic::Status>;
async fn get_folder_details(
&self,
request: tonic::Request<super::GetFolderDetailsRequest>,
) -> Result<tonic::Response<super::GetFolderDetailsResponse>, tonic::Status>;
}
#[derive(Debug)]
pub struct PlaylistServiceServer<T: PlaylistService> {
inner: _Inner<T>,
accept_compression_encodings: EnabledCompressionEncodings,
send_compression_encodings: EnabledCompressionEncodings,
}
struct _Inner<T>(Arc<T>);
impl<T: PlaylistService> PlaylistServiceServer<T> {
pub fn new(inner: T) -> Self {
Self::from_arc(Arc::new(inner))
}
pub fn from_arc(inner: Arc<T>) -> Self {
let inner = _Inner(inner);
Self {
inner,
accept_compression_encodings: Default::default(),
send_compression_encodings: Default::default(),
}
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> InterceptedService<Self, F>
where
F: tonic::service::Interceptor,
{
InterceptedService::new(Self::new(inner), interceptor)
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.accept_compression_encodings.enable(encoding);
self
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.send_compression_encodings.enable(encoding);
self
}
}
impl<T, B> tonic::codegen::Service<http::Request<B>> for PlaylistServiceServer<T>
where
T: PlaylistService,
B: Body + Send + 'static,
B::Error: Into<StdError> + Send + 'static,
{
type Response = http::Response<tonic::body::BoxBody>;
type Error = std::convert::Infallible;
type Future = BoxFuture<Self::Response, Self::Error>;
fn poll_ready(
&mut self,
_cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>> {
Poll::Ready(Ok(()))
}
fn call(&mut self, req: http::Request<B>) -> Self::Future {
let inner = self.inner.clone();
match req.uri().path() {
"/music.v1alpha1.PlaylistService/Create" => {
#[allow(non_camel_case_types)]
struct CreateSvc<T: PlaylistService>(pub Arc<T>);
impl<
T: PlaylistService,
> tonic::server::UnaryService<super::CreateRequest>
for CreateSvc<T> {
type Response = super::CreateResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::CreateRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).create(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = CreateSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaylistService/Delete" => {
#[allow(non_camel_case_types)]
struct DeleteSvc<T: PlaylistService>(pub Arc<T>);
impl<
T: PlaylistService,
> tonic::server::UnaryService<super::DeleteRequest>
for DeleteSvc<T> {
type Response = super::DeleteResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::DeleteRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).delete(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = DeleteSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaylistService/GetItems" => {
#[allow(non_camel_case_types)]
struct GetItemsSvc<T: PlaylistService>(pub Arc<T>);
impl<
T: PlaylistService,
> tonic::server::UnaryService<super::GetItemsRequest>
for GetItemsSvc<T> {
type Response = super::GetItemsResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetItemsRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).get_items(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetItemsSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaylistService/Rename" => {
#[allow(non_camel_case_types)]
struct RenameSvc<T: PlaylistService>(pub Arc<T>);
impl<
T: PlaylistService,
> tonic::server::UnaryService<super::RenameRequest>
for RenameSvc<T> {
type Response = super::RenameResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::RenameRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).rename(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = RenameSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaylistService/RemoveItem" => {
#[allow(non_camel_case_types)]
struct RemoveItemSvc<T: PlaylistService>(pub Arc<T>);
impl<
T: PlaylistService,
> tonic::server::UnaryService<super::RemoveItemRequest>
for RemoveItemSvc<T> {
type Response = super::RemoveItemResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::RemoveItemRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).remove_item(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = RemoveItemSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaylistService/AddItem" => {
#[allow(non_camel_case_types)]
struct AddItemSvc<T: PlaylistService>(pub Arc<T>);
impl<
T: PlaylistService,
> tonic::server::UnaryService<super::AddItemRequest>
for AddItemSvc<T> {
type Response = super::AddItemResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::AddItemRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).add_item(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = AddItemSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaylistService/FindAll" => {
#[allow(non_camel_case_types)]
struct FindAllSvc<T: PlaylistService>(pub Arc<T>);
impl<
T: PlaylistService,
> tonic::server::UnaryService<super::FindAllRequest>
for FindAllSvc<T> {
type Response = super::FindAllResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::FindAllRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).find_all(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = FindAllSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaylistService/GetPlaylistDetails" => {
#[allow(non_camel_case_types)]
struct GetPlaylistDetailsSvc<T: PlaylistService>(pub Arc<T>);
impl<
T: PlaylistService,
> tonic::server::UnaryService<super::GetPlaylistDetailsRequest>
for GetPlaylistDetailsSvc<T> {
type Response = super::GetPlaylistDetailsResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetPlaylistDetailsRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).get_playlist_details(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetPlaylistDetailsSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaylistService/CreateFolder" => {
#[allow(non_camel_case_types)]
struct CreateFolderSvc<T: PlaylistService>(pub Arc<T>);
impl<
T: PlaylistService,
> tonic::server::UnaryService<super::CreateFolderRequest>
for CreateFolderSvc<T> {
type Response = super::CreateFolderResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::CreateFolderRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).create_folder(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = CreateFolderSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaylistService/DeleteFolder" => {
#[allow(non_camel_case_types)]
struct DeleteFolderSvc<T: PlaylistService>(pub Arc<T>);
impl<
T: PlaylistService,
> tonic::server::UnaryService<super::DeleteFolderRequest>
for DeleteFolderSvc<T> {
type Response = super::DeleteFolderResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::DeleteFolderRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).delete_folder(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = DeleteFolderSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaylistService/RenameFolder" => {
#[allow(non_camel_case_types)]
struct RenameFolderSvc<T: PlaylistService>(pub Arc<T>);
impl<
T: PlaylistService,
> tonic::server::UnaryService<super::RenameFolderRequest>
for RenameFolderSvc<T> {
type Response = super::RenameFolderResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::RenameFolderRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).rename_folder(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = RenameFolderSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaylistService/FindAllFolders" => {
#[allow(non_camel_case_types)]
struct FindAllFoldersSvc<T: PlaylistService>(pub Arc<T>);
impl<
T: PlaylistService,
> tonic::server::UnaryService<super::FindAllFoldersRequest>
for FindAllFoldersSvc<T> {
type Response = super::FindAllFoldersResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::FindAllFoldersRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).find_all_folders(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = FindAllFoldersSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.PlaylistService/GetFolderDetails" => {
#[allow(non_camel_case_types)]
struct GetFolderDetailsSvc<T: PlaylistService>(pub Arc<T>);
impl<
T: PlaylistService,
> tonic::server::UnaryService<super::GetFolderDetailsRequest>
for GetFolderDetailsSvc<T> {
type Response = super::GetFolderDetailsResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetFolderDetailsRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).get_folder_details(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetFolderDetailsSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
_ => {
Box::pin(async move {
Ok(
http::Response::builder()
.status(200)
.header("grpc-status", "12")
.header("content-type", "application/grpc")
.body(empty_body())
.unwrap(),
)
})
}
}
}
}
impl<T: PlaylistService> Clone for PlaylistServiceServer<T> {
fn clone(&self) -> Self {
let inner = self.inner.clone();
Self {
inner,
accept_compression_encodings: self.accept_compression_encodings,
send_compression_encodings: self.send_compression_encodings,
}
}
}
impl<T: PlaylistService> Clone for _Inner<T> {
fn clone(&self) -> Self {
Self(self.0.clone())
}
}
impl<T: std::fmt::Debug> std::fmt::Debug for _Inner<T> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{:?}", self.0)
}
}
impl<T: PlaylistService> tonic::server::NamedService for PlaylistServiceServer<T> {
const NAME: &'static str = "music.v1alpha1.PlaylistService";
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddTrackRequest {
#[prost(message, optional, tag = "1")]
pub track: ::core::option::Option<super::super::metadata::v1alpha1::Track>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddTrackResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddTracksRequest {
#[prost(message, repeated, tag = "1")]
pub tracks: ::prost::alloc::vec::Vec<super::super::metadata::v1alpha1::Track>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddTracksResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClearTracklistRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClearTracklistResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FilterTracklistRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FilterTracklistResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetRandomResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetRepeatResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetSingleResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetNextTrackResponse {
#[prost(message, optional, tag = "1")]
pub track: ::core::option::Option<super::super::metadata::v1alpha1::Track>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPreviousTrackResponse {
#[prost(message, optional, tag = "1")]
pub track: ::core::option::Option<super::super::metadata::v1alpha1::Track>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RemoveTrackRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RemoveTrackResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetRepeatRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetRepeatResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ShuffleResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTracklistTracksResponse {
#[prost(message, repeated, tag = "1")]
pub next_tracks: ::prost::alloc::vec::Vec<super::super::metadata::v1alpha1::Track>,
#[prost(message, repeated, tag = "2")]
pub previous_tracks: ::prost::alloc::vec::Vec<
super::super::metadata::v1alpha1::Track,
>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetRandomRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetRepeatRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetSingleRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetNextTrackRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPreviousTrackRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ShuffleRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTracklistTracksRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayNextRequest {
#[prost(message, optional, tag = "1")]
pub track: ::core::option::Option<super::super::metadata::v1alpha1::Track>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayNextResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayTrackAtRequest {
#[prost(uint32, tag = "1")]
pub index: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayTrackAtResponse {}
pub mod tracklist_service_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
use tonic::codegen::http::Uri;
#[derive(Debug, Clone)]
pub struct TracklistServiceClient<T> {
inner: tonic::client::Grpc<T>,
}
impl TracklistServiceClient<tonic::transport::Channel> {
pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
where
D: std::convert::TryInto<tonic::transport::Endpoint>,
D::Error: Into<StdError>,
{
let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
Ok(Self::new(conn))
}
}
impl<T> TracklistServiceClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> TracklistServiceClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
>>::Error: Into<StdError> + Send + Sync,
{
TracklistServiceClient::new(InterceptedService::new(inner, interceptor))
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
pub async fn add_track(
&mut self,
request: impl tonic::IntoRequest<super::AddTrackRequest>,
) -> Result<tonic::Response<super::AddTrackResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.TracklistService/AddTrack",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn add_tracks(
&mut self,
request: impl tonic::IntoRequest<super::AddTracksRequest>,
) -> Result<tonic::Response<super::AddTracksResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.TracklistService/AddTracks",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn clear_tracklist(
&mut self,
request: impl tonic::IntoRequest<super::ClearTracklistRequest>,
) -> Result<tonic::Response<super::ClearTracklistResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.TracklistService/ClearTracklist",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn filter_tracklist(
&mut self,
request: impl tonic::IntoRequest<super::FilterTracklistRequest>,
) -> Result<tonic::Response<super::FilterTracklistResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.TracklistService/FilterTracklist",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_random(
&mut self,
request: impl tonic::IntoRequest<super::GetRandomRequest>,
) -> Result<tonic::Response<super::GetRandomResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.TracklistService/GetRandom",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_repeat(
&mut self,
request: impl tonic::IntoRequest<super::GetRepeatRequest>,
) -> Result<tonic::Response<super::GetRepeatResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.TracklistService/GetRepeat",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_single(
&mut self,
request: impl tonic::IntoRequest<super::GetSingleRequest>,
) -> Result<tonic::Response<super::GetSingleResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.TracklistService/GetSingle",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_next_track(
&mut self,
request: impl tonic::IntoRequest<super::GetNextTrackRequest>,
) -> Result<tonic::Response<super::GetNextTrackResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.TracklistService/GetNextTrack",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_previous_track(
&mut self,
request: impl tonic::IntoRequest<super::GetPreviousTrackRequest>,
) -> Result<tonic::Response<super::GetPreviousTrackResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.TracklistService/GetPreviousTrack",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn remove_track(
&mut self,
request: impl tonic::IntoRequest<super::RemoveTrackRequest>,
) -> Result<tonic::Response<super::RemoveTrackResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.TracklistService/RemoveTrack",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn shuffle(
&mut self,
request: impl tonic::IntoRequest<super::ShuffleRequest>,
) -> Result<tonic::Response<super::ShuffleResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.TracklistService/Shuffle",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn set_repeat(
&mut self,
request: impl tonic::IntoRequest<super::SetRepeatRequest>,
) -> Result<tonic::Response<super::SetRepeatResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.TracklistService/SetRepeat",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn get_tracklist_tracks(
&mut self,
request: impl tonic::IntoRequest<super::GetTracklistTracksRequest>,
) -> Result<tonic::Response<super::GetTracklistTracksResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.TracklistService/GetTracklistTracks",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn play_next(
&mut self,
request: impl tonic::IntoRequest<super::PlayNextRequest>,
) -> Result<tonic::Response<super::PlayNextResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.TracklistService/PlayNext",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn play_track_at(
&mut self,
request: impl tonic::IntoRequest<super::PlayTrackAtRequest>,
) -> Result<tonic::Response<super::PlayTrackAtResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/music.v1alpha1.TracklistService/PlayTrackAt",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}
pub mod tracklist_service_server {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
#[async_trait]
pub trait TracklistService: Send + Sync + 'static {
async fn add_track(
&self,
request: tonic::Request<super::AddTrackRequest>,
) -> Result<tonic::Response<super::AddTrackResponse>, tonic::Status>;
async fn add_tracks(
&self,
request: tonic::Request<super::AddTracksRequest>,
) -> Result<tonic::Response<super::AddTracksResponse>, tonic::Status>;
async fn clear_tracklist(
&self,
request: tonic::Request<super::ClearTracklistRequest>,
) -> Result<tonic::Response<super::ClearTracklistResponse>, tonic::Status>;
async fn filter_tracklist(
&self,
request: tonic::Request<super::FilterTracklistRequest>,
) -> Result<tonic::Response<super::FilterTracklistResponse>, tonic::Status>;
async fn get_random(
&self,
request: tonic::Request<super::GetRandomRequest>,
) -> Result<tonic::Response<super::GetRandomResponse>, tonic::Status>;
async fn get_repeat(
&self,
request: tonic::Request<super::GetRepeatRequest>,
) -> Result<tonic::Response<super::GetRepeatResponse>, tonic::Status>;
async fn get_single(
&self,
request: tonic::Request<super::GetSingleRequest>,
) -> Result<tonic::Response<super::GetSingleResponse>, tonic::Status>;
async fn get_next_track(
&self,
request: tonic::Request<super::GetNextTrackRequest>,
) -> Result<tonic::Response<super::GetNextTrackResponse>, tonic::Status>;
async fn get_previous_track(
&self,
request: tonic::Request<super::GetPreviousTrackRequest>,
) -> Result<tonic::Response<super::GetPreviousTrackResponse>, tonic::Status>;
async fn remove_track(
&self,
request: tonic::Request<super::RemoveTrackRequest>,
) -> Result<tonic::Response<super::RemoveTrackResponse>, tonic::Status>;
async fn shuffle(
&self,
request: tonic::Request<super::ShuffleRequest>,
) -> Result<tonic::Response<super::ShuffleResponse>, tonic::Status>;
async fn set_repeat(
&self,
request: tonic::Request<super::SetRepeatRequest>,
) -> Result<tonic::Response<super::SetRepeatResponse>, tonic::Status>;
async fn get_tracklist_tracks(
&self,
request: tonic::Request<super::GetTracklistTracksRequest>,
) -> Result<tonic::Response<super::GetTracklistTracksResponse>, tonic::Status>;
async fn play_next(
&self,
request: tonic::Request<super::PlayNextRequest>,
) -> Result<tonic::Response<super::PlayNextResponse>, tonic::Status>;
async fn play_track_at(
&self,
request: tonic::Request<super::PlayTrackAtRequest>,
) -> Result<tonic::Response<super::PlayTrackAtResponse>, tonic::Status>;
}
#[derive(Debug)]
pub struct TracklistServiceServer<T: TracklistService> {
inner: _Inner<T>,
accept_compression_encodings: EnabledCompressionEncodings,
send_compression_encodings: EnabledCompressionEncodings,
}
struct _Inner<T>(Arc<T>);
impl<T: TracklistService> TracklistServiceServer<T> {
pub fn new(inner: T) -> Self {
Self::from_arc(Arc::new(inner))
}
pub fn from_arc(inner: Arc<T>) -> Self {
let inner = _Inner(inner);
Self {
inner,
accept_compression_encodings: Default::default(),
send_compression_encodings: Default::default(),
}
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> InterceptedService<Self, F>
where
F: tonic::service::Interceptor,
{
InterceptedService::new(Self::new(inner), interceptor)
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.accept_compression_encodings.enable(encoding);
self
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.send_compression_encodings.enable(encoding);
self
}
}
impl<T, B> tonic::codegen::Service<http::Request<B>> for TracklistServiceServer<T>
where
T: TracklistService,
B: Body + Send + 'static,
B::Error: Into<StdError> + Send + 'static,
{
type Response = http::Response<tonic::body::BoxBody>;
type Error = std::convert::Infallible;
type Future = BoxFuture<Self::Response, Self::Error>;
fn poll_ready(
&mut self,
_cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>> {
Poll::Ready(Ok(()))
}
fn call(&mut self, req: http::Request<B>) -> Self::Future {
let inner = self.inner.clone();
match req.uri().path() {
"/music.v1alpha1.TracklistService/AddTrack" => {
#[allow(non_camel_case_types)]
struct AddTrackSvc<T: TracklistService>(pub Arc<T>);
impl<
T: TracklistService,
> tonic::server::UnaryService<super::AddTrackRequest>
for AddTrackSvc<T> {
type Response = super::AddTrackResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::AddTrackRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).add_track(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = AddTrackSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.TracklistService/AddTracks" => {
#[allow(non_camel_case_types)]
struct AddTracksSvc<T: TracklistService>(pub Arc<T>);
impl<
T: TracklistService,
> tonic::server::UnaryService<super::AddTracksRequest>
for AddTracksSvc<T> {
type Response = super::AddTracksResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::AddTracksRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).add_tracks(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = AddTracksSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.TracklistService/ClearTracklist" => {
#[allow(non_camel_case_types)]
struct ClearTracklistSvc<T: TracklistService>(pub Arc<T>);
impl<
T: TracklistService,
> tonic::server::UnaryService<super::ClearTracklistRequest>
for ClearTracklistSvc<T> {
type Response = super::ClearTracklistResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::ClearTracklistRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).clear_tracklist(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = ClearTracklistSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.TracklistService/FilterTracklist" => {
#[allow(non_camel_case_types)]
struct FilterTracklistSvc<T: TracklistService>(pub Arc<T>);
impl<
T: TracklistService,
> tonic::server::UnaryService<super::FilterTracklistRequest>
for FilterTracklistSvc<T> {
type Response = super::FilterTracklistResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::FilterTracklistRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).filter_tracklist(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = FilterTracklistSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.TracklistService/GetRandom" => {
#[allow(non_camel_case_types)]
struct GetRandomSvc<T: TracklistService>(pub Arc<T>);
impl<
T: TracklistService,
> tonic::server::UnaryService<super::GetRandomRequest>
for GetRandomSvc<T> {
type Response = super::GetRandomResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetRandomRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).get_random(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetRandomSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.TracklistService/GetRepeat" => {
#[allow(non_camel_case_types)]
struct GetRepeatSvc<T: TracklistService>(pub Arc<T>);
impl<
T: TracklistService,
> tonic::server::UnaryService<super::GetRepeatRequest>
for GetRepeatSvc<T> {
type Response = super::GetRepeatResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetRepeatRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).get_repeat(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetRepeatSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.TracklistService/GetSingle" => {
#[allow(non_camel_case_types)]
struct GetSingleSvc<T: TracklistService>(pub Arc<T>);
impl<
T: TracklistService,
> tonic::server::UnaryService<super::GetSingleRequest>
for GetSingleSvc<T> {
type Response = super::GetSingleResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetSingleRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).get_single(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetSingleSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.TracklistService/GetNextTrack" => {
#[allow(non_camel_case_types)]
struct GetNextTrackSvc<T: TracklistService>(pub Arc<T>);
impl<
T: TracklistService,
> tonic::server::UnaryService<super::GetNextTrackRequest>
for GetNextTrackSvc<T> {
type Response = super::GetNextTrackResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetNextTrackRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).get_next_track(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetNextTrackSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.TracklistService/GetPreviousTrack" => {
#[allow(non_camel_case_types)]
struct GetPreviousTrackSvc<T: TracklistService>(pub Arc<T>);
impl<
T: TracklistService,
> tonic::server::UnaryService<super::GetPreviousTrackRequest>
for GetPreviousTrackSvc<T> {
type Response = super::GetPreviousTrackResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetPreviousTrackRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).get_previous_track(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetPreviousTrackSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.TracklistService/RemoveTrack" => {
#[allow(non_camel_case_types)]
struct RemoveTrackSvc<T: TracklistService>(pub Arc<T>);
impl<
T: TracklistService,
> tonic::server::UnaryService<super::RemoveTrackRequest>
for RemoveTrackSvc<T> {
type Response = super::RemoveTrackResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::RemoveTrackRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).remove_track(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = RemoveTrackSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.TracklistService/Shuffle" => {
#[allow(non_camel_case_types)]
struct ShuffleSvc<T: TracklistService>(pub Arc<T>);
impl<
T: TracklistService,
> tonic::server::UnaryService<super::ShuffleRequest>
for ShuffleSvc<T> {
type Response = super::ShuffleResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::ShuffleRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).shuffle(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = ShuffleSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.TracklistService/SetRepeat" => {
#[allow(non_camel_case_types)]
struct SetRepeatSvc<T: TracklistService>(pub Arc<T>);
impl<
T: TracklistService,
> tonic::server::UnaryService<super::SetRepeatRequest>
for SetRepeatSvc<T> {
type Response = super::SetRepeatResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::SetRepeatRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).set_repeat(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = SetRepeatSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.TracklistService/GetTracklistTracks" => {
#[allow(non_camel_case_types)]
struct GetTracklistTracksSvc<T: TracklistService>(pub Arc<T>);
impl<
T: TracklistService,
> tonic::server::UnaryService<super::GetTracklistTracksRequest>
for GetTracklistTracksSvc<T> {
type Response = super::GetTracklistTracksResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::GetTracklistTracksRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).get_tracklist_tracks(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = GetTracklistTracksSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.TracklistService/PlayNext" => {
#[allow(non_camel_case_types)]
struct PlayNextSvc<T: TracklistService>(pub Arc<T>);
impl<
T: TracklistService,
> tonic::server::UnaryService<super::PlayNextRequest>
for PlayNextSvc<T> {
type Response = super::PlayNextResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::PlayNextRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move { (*inner).play_next(request).await };
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = PlayNextSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/music.v1alpha1.TracklistService/PlayTrackAt" => {
#[allow(non_camel_case_types)]
struct PlayTrackAtSvc<T: TracklistService>(pub Arc<T>);
impl<
T: TracklistService,
> tonic::server::UnaryService<super::PlayTrackAtRequest>
for PlayTrackAtSvc<T> {
type Response = super::PlayTrackAtResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::PlayTrackAtRequest>,
) -> Self::Future {
let inner = self.0.clone();
let fut = async move {
(*inner).play_track_at(request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let inner = self.inner.clone();
let fut = async move {
let inner = inner.0;
let method = PlayTrackAtSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
_ => {
Box::pin(async move {
Ok(
http::Response::builder()
.status(200)
.header("grpc-status", "12")
.header("content-type", "application/grpc")
.body(empty_body())
.unwrap(),
)
})
}
}
}
}
impl<T: TracklistService> Clone for TracklistServiceServer<T> {
fn clone(&self) -> Self {
let inner = self.inner.clone();
Self {
inner,
accept_compression_encodings: self.accept_compression_encodings,
send_compression_encodings: self.send_compression_encodings,
}
}
}
impl<T: TracklistService> Clone for _Inner<T> {
fn clone(&self) -> Self {
Self(self.0.clone())
}
}
impl<T: std::fmt::Debug> std::fmt::Debug for _Inner<T> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{:?}", self.0)
}
}
impl<T: TracklistService> tonic::server::NamedService for TracklistServiceServer<T> {
const NAME: &'static str = "music.v1alpha1.TracklistService";
}
}