From 03df609699b53944811cbd18a7228a6411c7b666 Mon Sep 17 00:00:00 2001 From: Pyrite Date: Tue, 27 May 2025 13:34:18 +0200 Subject: [PATCH] chore(codegen): implemented `Eq` for `OpenApiSchema` --- torn-api-codegen/src/openapi/path.rs | 2 +- torn-api-codegen/src/openapi/schema.rs | 4 ++-- torn-api/src/executor.rs | 17 ++++++++++++++++- torn-api/src/scopes.rs | 14 ++++++++++++++ 4 files changed, 33 insertions(+), 4 deletions(-) diff --git a/torn-api-codegen/src/openapi/path.rs b/torn-api-codegen/src/openapi/path.rs index 5df455a..513870a 100644 --- a/torn-api-codegen/src/openapi/path.rs +++ b/torn-api-codegen/src/openapi/path.rs @@ -79,7 +79,7 @@ pub struct OpenApiPathBody<'a> { pub operation_id: Option, } -#[derive(Debug, Clone, Deserialize)] +#[derive(Debug, Clone, Deserialize, PartialEq, Eq)] pub struct OpenApiPath<'a> { #[serde(borrow)] pub get: OpenApiPathBody<'a>, diff --git a/torn-api-codegen/src/openapi/schema.rs b/torn-api-codegen/src/openapi/schema.rs index c06a76d..cd2d47b 100644 --- a/torn-api-codegen/src/openapi/schema.rs +++ b/torn-api-codegen/src/openapi/schema.rs @@ -3,7 +3,7 @@ use serde::Deserialize; use super::{parameter::OpenApiParameter, path::OpenApiPath, r#type::OpenApiType}; -#[derive(Debug, Clone, Deserialize)] +#[derive(Debug, Clone, Deserialize, PartialEq, Eq)] pub struct Components<'a> { #[serde(borrow)] pub schemas: IndexMap<&'a str, OpenApiType<'a>>, @@ -11,7 +11,7 @@ pub struct Components<'a> { pub parameters: IndexMap<&'a str, OpenApiParameter<'a>>, } -#[derive(Debug, Clone, Deserialize)] +#[derive(Debug, Clone, Deserialize, PartialEq, Eq)] pub struct OpenApiSchema<'a> { #[serde(borrow)] pub paths: IndexMap<&'a str, OpenApiPath<'a>>, diff --git a/torn-api/src/executor.rs b/torn-api/src/executor.rs index 3ed5d03..61ba949 100644 --- a/torn-api/src/executor.rs +++ b/torn-api/src/executor.rs @@ -4,12 +4,15 @@ use futures::{Stream, StreamExt}; use http::{header::AUTHORIZATION, HeaderMap, HeaderValue}; use serde::Deserialize; -use crate::request::{ApiRequest, ApiResponse, IntoRequest}; #[cfg(feature = "scopes")] use crate::scopes::{ BulkFactionScope, BulkForumScope, BulkMarketScope, BulkRacingScope, BulkTornScope, BulkUserScope, FactionScope, ForumScope, MarketScope, RacingScope, TornScope, UserScope, }; +use crate::{ + request::{ApiRequest, ApiResponse, IntoRequest}, + scopes::{BulkKeyScope, KeyScope}, +}; pub trait Executor: Sized { type Error: From + From + Send; @@ -125,6 +128,8 @@ pub trait ExecutorExt: Executor + Sized { fn racing(self) -> RacingScope; fn forum(self) -> ForumScope; + + fn key(self) -> KeyScope; } #[cfg(feature = "scopes")] @@ -155,6 +160,10 @@ where fn forum(self) -> ForumScope { ForumScope::new(self) } + + fn key(self) -> KeyScope { + KeyScope::new(self) + } } #[cfg(feature = "scopes")] @@ -170,6 +179,8 @@ pub trait BulkExecutorExt: BulkExecutor + Sized { fn racing_bulk(self) -> BulkRacingScope; fn forum_bulk(self) -> BulkForumScope; + + fn key_bulk(self) -> BulkKeyScope; } #[cfg(feature = "scopes")] @@ -200,6 +211,10 @@ where fn forum_bulk(self) -> BulkForumScope { BulkForumScope::new(self) } + + fn key_bulk(self) -> BulkKeyScope { + BulkKeyScope::new(self) + } } pub struct ReqwestClient(reqwest::Client); diff --git a/torn-api/src/scopes.rs b/torn-api/src/scopes.rs index ea548f0..2751181 100644 --- a/torn-api/src/scopes.rs +++ b/torn-api/src/scopes.rs @@ -970,4 +970,18 @@ pub(super) mod test { client.user().reports(|b| b).await.unwrap(); } + + #[tokio::test] + async fn key_info() { + let client = test_client().await; + + client.key().info(|b| b).await.unwrap(); + } + + #[tokio::test] + async fn key_log() { + let client = test_client().await; + + client.key().log(|b| b).await.unwrap(); + } }