diff --git a/src/lib.rs b/src/lib.rs index d7a9a43..99c8450 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -4,11 +4,13 @@ pub mod bots; pub mod datastore; pub mod dev; pub mod events; +pub mod mapfixes; pub mod maps; pub mod maps_extended; pub mod moderation; pub mod ranks; pub mod servers; +pub mod submissions; pub mod times; pub mod transactions; pub mod users; diff --git a/src/mapfixes/mapfixes.tonic.rs b/src/mapfixes/mapfixes.tonic.rs new file mode 100644 index 0000000..f3d255e --- /dev/null +++ b/src/mapfixes/mapfixes.tonic.rs @@ -0,0 +1,431 @@ +// @generated +/// Generated client implementations. +pub mod mapfixes_service_client { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + #[derive(Debug, Clone)] + pub struct MapfixesServiceClient { + inner: tonic::client::Grpc, + } + impl MapfixesServiceClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl MapfixesServiceClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::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( + inner: T, + interceptor: F, + ) -> MapfixesServiceClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + std::marker::Send + std::marker::Sync, + { + MapfixesServiceClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + pub async fn get( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/mapfixes.MapfixesService/Get", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("mapfixes.MapfixesService", "Get")); + self.inner.unary(req, path, codec).await + } + pub async fn get_list( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/mapfixes.MapfixesService/GetList", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("mapfixes.MapfixesService", "GetList")); + self.inner.unary(req, path, codec).await + } + pub async fn list( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/mapfixes.MapfixesService/List", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("mapfixes.MapfixesService", "List")); + self.inner.unary(req, path, codec).await + } + } +} +/// Generated server implementations. +pub mod mapfixes_service_server { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with MapfixesServiceServer. + #[async_trait] + pub trait MapfixesService: std::marker::Send + std::marker::Sync + 'static { + async fn get( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + async fn get_list( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + async fn list( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + } + #[derive(Debug)] + pub struct MapfixesServiceServer { + inner: Arc, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + impl MapfixesServiceServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> for MapfixesServiceServer + where + T: MapfixesService, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + match req.uri().path() { + "/mapfixes.MapfixesService/Get" => { + #[allow(non_camel_case_types)] + struct GetSvc(pub Arc); + impl tonic::server::UnaryService + for GetSvc { + type Response = super::MapfixResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/mapfixes.MapfixesService/GetList" => { + #[allow(non_camel_case_types)] + struct GetListSvc(pub Arc); + impl< + T: MapfixesService, + > tonic::server::UnaryService + for GetListSvc { + type Response = super::MapfixList; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_list(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetListSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/mapfixes.MapfixesService/List" => { + #[allow(non_camel_case_types)] + struct ListSvc(pub Arc); + impl< + T: MapfixesService, + > tonic::server::UnaryService for ListSvc { + type Response = super::MapfixList; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::list(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ListSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + let mut response = http::Response::new( + tonic::body::Body::default(), + ); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) + }) + } + } + } + } + impl Clone for MapfixesServiceServer { + 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, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "mapfixes.MapfixesService"; + impl tonic::server::NamedService for MapfixesServiceServer { + const NAME: &'static str = SERVICE_NAME; + } +} diff --git a/src/mapfixes/mod.rs b/src/mapfixes/mod.rs new file mode 100644 index 0000000..7d98824 --- /dev/null +++ b/src/mapfixes/mod.rs @@ -0,0 +1,162 @@ +// @generated +// This file is @generated by prost-build. +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct MapfixIdList { + #[prost(int64, repeated, tag="1")] + #[serde(rename = "ID")] + pub id: ::prost::alloc::vec::Vec, +} +#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct MapfixId { + #[prost(int64, tag="1")] + #[serde(rename = "ID")] + pub id: i64, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct MapfixResponse { + #[prost(int64, tag="1")] + #[serde(rename = "ID")] + pub id: i64, + #[prost(string, tag="2")] + pub display_name: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub creator: ::prost::alloc::string::String, + #[prost(uint32, tag="4")] + #[serde(rename = "GameID")] + pub game_id: u32, + #[prost(int64, tag="5")] + pub created_at: i64, + #[prost(int64, tag="6")] + pub updated_at: i64, + #[prost(uint64, tag="7")] + pub submitter: u64, + #[prost(uint64, tag="8")] + pub asset_id: u64, + #[prost(uint64, tag="9")] + pub asset_version: u64, + #[prost(uint64, tag="10")] + pub validated_asset_id: u64, + #[prost(uint64, tag="11")] + pub validated_asset_version: u64, + #[prost(uint64, tag="12")] + pub uploaded_asset_id: u64, + #[prost(enumeration="MapfixStatus", tag="13")] + pub status_id: i32, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct MapfixFilter { + #[prost(enumeration="MapfixStatus", optional, tag="1")] + pub status_id: ::core::option::Option, + #[prost(string, optional, tag="2")] + pub display_name: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, optional, tag="3")] + pub creator: ::core::option::Option<::prost::alloc::string::String>, + #[prost(uint32, optional, tag="4")] + #[serde(rename = "GameID")] + pub game_id: ::core::option::Option, + #[prost(uint64, optional, tag="5")] + pub submitter: ::core::option::Option, +} +#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct MapfixList { + #[prost(message, repeated, tag="1")] + pub mapfixes: ::prost::alloc::vec::Vec, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct ListRequest { + #[prost(message, optional, tag="1")] + pub filter: ::core::option::Option, + #[prost(message, optional, tag="2")] + pub page: ::core::option::Option, +} +#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct Pagination { + #[prost(uint32, tag="1")] + pub size: u32, + #[prost(uint32, tag="2")] + pub number: u32, +} +#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct NullResponse { +} +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum MapfixStatus { + /// Phase: Creation + UnderConstruction = 0, + ChangesRequested = 1, + /// Phase: Review + Submitting = 2, + Submitted = 3, + /// Phase: Testing + /// + /// pending script review, can re-trigger validation + AcceptedUnvalidated = 4, + Validating = 5, + Validated = 6, + Uploading = 7, + /// uploaded to the group, but pending release + Uploaded = 8, + Releasing = 11, + /// Phase: Final MapfixStatus + Rejected = 9, + Released = 10, +} +impl MapfixStatus { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Self::UnderConstruction => "MapfixStatusUnderConstruction", + Self::ChangesRequested => "MapfixStatusChangesRequested", + Self::Submitting => "MapfixStatusSubmitting", + Self::Submitted => "MapfixStatusSubmitted", + Self::AcceptedUnvalidated => "MapfixStatusAcceptedUnvalidated", + Self::Validating => "MapfixStatusValidating", + Self::Validated => "MapfixStatusValidated", + Self::Uploading => "MapfixStatusUploading", + Self::Uploaded => "MapfixStatusUploaded", + Self::Releasing => "MapfixStatusReleasing", + Self::Rejected => "MapfixStatusRejected", + Self::Released => "MapfixStatusReleased", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MapfixStatusUnderConstruction" => Some(Self::UnderConstruction), + "MapfixStatusChangesRequested" => Some(Self::ChangesRequested), + "MapfixStatusSubmitting" => Some(Self::Submitting), + "MapfixStatusSubmitted" => Some(Self::Submitted), + "MapfixStatusAcceptedUnvalidated" => Some(Self::AcceptedUnvalidated), + "MapfixStatusValidating" => Some(Self::Validating), + "MapfixStatusValidated" => Some(Self::Validated), + "MapfixStatusUploading" => Some(Self::Uploading), + "MapfixStatusUploaded" => Some(Self::Uploaded), + "MapfixStatusReleasing" => Some(Self::Releasing), + "MapfixStatusRejected" => Some(Self::Rejected), + "MapfixStatusReleased" => Some(Self::Released), + _ => None, + } + } +} +include!("mapfixes.tonic.rs"); +// @@protoc_insertion_point(module) diff --git a/src/submissions/mod.rs b/src/submissions/mod.rs new file mode 100644 index 0000000..0c2d9d5 --- /dev/null +++ b/src/submissions/mod.rs @@ -0,0 +1,159 @@ +// @generated +// This file is @generated by prost-build. +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct SubmissionIdList { + #[prost(int64, repeated, tag="1")] + #[serde(rename = "ID")] + pub id: ::prost::alloc::vec::Vec, +} +#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct SubmissionId { + #[prost(int64, tag="1")] + #[serde(rename = "ID")] + pub id: i64, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct SubmissionResponse { + #[prost(int64, tag="1")] + #[serde(rename = "ID")] + pub id: i64, + #[prost(string, tag="2")] + pub display_name: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub creator: ::prost::alloc::string::String, + #[prost(uint32, tag="4")] + #[serde(rename = "GameID")] + pub game_id: u32, + #[prost(int64, tag="7")] + pub created_at: i64, + #[prost(int64, tag="8")] + pub updated_at: i64, + #[prost(uint64, tag="9")] + pub submitter: u64, + #[prost(uint64, tag="10")] + pub asset_id: u64, + #[prost(uint64, tag="11")] + pub asset_version: u64, + #[prost(uint64, tag="12")] + pub validated_asset_id: u64, + #[prost(uint64, tag="13")] + pub validated_asset_version: u64, + #[prost(uint64, tag="14")] + pub uploaded_asset_id: u64, + #[prost(enumeration="SubmissionStatus", tag="15")] + pub status_id: i32, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct SubmissionFilter { + #[prost(enumeration="SubmissionStatus", optional, tag="1")] + pub status_id: ::core::option::Option, + #[prost(string, optional, tag="2")] + pub display_name: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, optional, tag="3")] + pub creator: ::core::option::Option<::prost::alloc::string::String>, + #[prost(uint32, optional, tag="4")] + #[serde(rename = "GameID")] + pub game_id: ::core::option::Option, + #[prost(uint64, optional, tag="5")] + pub submitter: ::core::option::Option, +} +#[derive(Clone, PartialEq, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct SubmissionList { + #[prost(message, repeated, tag="1")] + pub submissions: ::prost::alloc::vec::Vec, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct ListRequest { + #[prost(message, optional, tag="1")] + pub filter: ::core::option::Option, + #[prost(message, optional, tag="2")] + pub page: ::core::option::Option, +} +#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct Pagination { + #[prost(uint32, tag="1")] + pub size: u32, + #[prost(uint32, tag="2")] + pub number: u32, +} +#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct NullResponse { +} +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum SubmissionStatus { + /// Phase: Creation + UnderConstruction = 0, + ChangesRequested = 1, + /// Phase: Review + Submitting = 2, + Submitted = 3, + /// Phase: Testing + /// + /// pending script review, can re-trigger validation + AcceptedUnvalidated = 4, + Validating = 5, + Validated = 6, + Uploading = 7, + /// uploaded to the group, but pending release + Uploaded = 8, + /// Phase: Final SubmissionStatus + Rejected = 9, + Released = 10, +} +impl SubmissionStatus { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Self::UnderConstruction => "SubmissionStatusUnderConstruction", + Self::ChangesRequested => "SubmissionStatusChangesRequested", + Self::Submitting => "SubmissionStatusSubmitting", + Self::Submitted => "SubmissionStatusSubmitted", + Self::AcceptedUnvalidated => "SubmissionStatusAcceptedUnvalidated", + Self::Validating => "SubmissionStatusValidating", + Self::Validated => "SubmissionStatusValidated", + Self::Uploading => "SubmissionStatusUploading", + Self::Uploaded => "SubmissionStatusUploaded", + Self::Rejected => "SubmissionStatusRejected", + Self::Released => "SubmissionStatusReleased", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "SubmissionStatusUnderConstruction" => Some(Self::UnderConstruction), + "SubmissionStatusChangesRequested" => Some(Self::ChangesRequested), + "SubmissionStatusSubmitting" => Some(Self::Submitting), + "SubmissionStatusSubmitted" => Some(Self::Submitted), + "SubmissionStatusAcceptedUnvalidated" => Some(Self::AcceptedUnvalidated), + "SubmissionStatusValidating" => Some(Self::Validating), + "SubmissionStatusValidated" => Some(Self::Validated), + "SubmissionStatusUploading" => Some(Self::Uploading), + "SubmissionStatusUploaded" => Some(Self::Uploaded), + "SubmissionStatusRejected" => Some(Self::Rejected), + "SubmissionStatusReleased" => Some(Self::Released), + _ => None, + } + } +} +include!("submissions.tonic.rs"); +// @@protoc_insertion_point(module) diff --git a/src/submissions/submissions.tonic.rs b/src/submissions/submissions.tonic.rs new file mode 100644 index 0000000..8bec2b2 --- /dev/null +++ b/src/submissions/submissions.tonic.rs @@ -0,0 +1,438 @@ +// @generated +/// Generated client implementations. +pub mod submissions_service_client { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + #[derive(Debug, Clone)] + pub struct SubmissionsServiceClient { + inner: tonic::client::Grpc, + } + impl SubmissionsServiceClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl SubmissionsServiceClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::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( + inner: T, + interceptor: F, + ) -> SubmissionsServiceClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + std::marker::Send + std::marker::Sync, + { + SubmissionsServiceClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + pub async fn get( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/submissions.SubmissionsService/Get", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("submissions.SubmissionsService", "Get")); + self.inner.unary(req, path, codec).await + } + pub async fn get_list( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/submissions.SubmissionsService/GetList", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("submissions.SubmissionsService", "GetList")); + self.inner.unary(req, path, codec).await + } + pub async fn list( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/submissions.SubmissionsService/List", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("submissions.SubmissionsService", "List")); + self.inner.unary(req, path, codec).await + } + } +} +/// Generated server implementations. +pub mod submissions_service_server { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with SubmissionsServiceServer. + #[async_trait] + pub trait SubmissionsService: std::marker::Send + std::marker::Sync + 'static { + async fn get( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn get_list( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + async fn list( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + } + #[derive(Debug)] + pub struct SubmissionsServiceServer { + inner: Arc, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + impl SubmissionsServiceServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> for SubmissionsServiceServer + where + T: SubmissionsService, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + match req.uri().path() { + "/submissions.SubmissionsService/Get" => { + #[allow(non_camel_case_types)] + struct GetSvc(pub Arc); + impl< + T: SubmissionsService, + > tonic::server::UnaryService for GetSvc { + type Response = super::SubmissionResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/submissions.SubmissionsService/GetList" => { + #[allow(non_camel_case_types)] + struct GetListSvc(pub Arc); + impl< + T: SubmissionsService, + > tonic::server::UnaryService + for GetListSvc { + type Response = super::SubmissionList; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_list(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetListSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/submissions.SubmissionsService/List" => { + #[allow(non_camel_case_types)] + struct ListSvc(pub Arc); + impl< + T: SubmissionsService, + > tonic::server::UnaryService for ListSvc { + type Response = super::SubmissionList; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::list(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ListSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + let mut response = http::Response::new( + tonic::body::Body::default(), + ); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) + }) + } + } + } + } + impl Clone for SubmissionsServiceServer { + 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, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "submissions.SubmissionsService"; + impl tonic::server::NamedService for SubmissionsServiceServer { + const NAME: &'static str = SERVICE_NAME; + } +}