Skip to content

Commit 32bbaff

Browse files
authored
Chore: Use rust version 1.85 edition 2024 and bump version for dependent crates (#150)
2 parents 073e18e + 1df40c8 commit 32bbaff

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+127
-121
lines changed

Cargo.toml

+12-12
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,28 @@ members = [
1616

1717
[workspace.package]
1818
authors = ["Netwo <[email protected]>"]
19-
edition = "2021"
19+
edition = "2024"
2020
repository = "https://github.com/netwo-io/apistos"
2121
documentation = "https://docs.rs/apistos/"
2222
license = "MIT OR Apache-2.0"
23-
rust-version = "1.75"
23+
rust-version = "1.85.0"
2424
publish = true
2525
version = "0.4.2"
2626

2727
[workspace.dependencies]
2828
actix-service = "2"
2929
actix-web = "4"
3030
actix-web-grants = "4"
31-
actix-web-lab = "0.20"
31+
actix-web-lab = "0.24"
3232
assert-json-diff = "2.0.2"
33-
convert_case = "0.6"
33+
convert_case = "0.8"
3434
darling = "0.20"
3535
futures-core = "0.3"
3636
futures-util = "0.3"
3737
indexmap = "2"
38-
log = "0.4.20"
38+
log = "0.4"
3939
num_cpus = "1.16"
40-
md5 = "0.7.0"
40+
md5 = "0.7"
4141
once_cell = "1"
4242
pin-project = "1"
4343
proc-macro2 = "1.0"
@@ -49,14 +49,14 @@ serde = "1"
4949
serde_json = "1"
5050
syn = "2.0"
5151

52-
actix-multipart = "0.6"
52+
actix-multipart = "0.7"
5353
actix-session = "0.10"
54-
garde-actix-web = "0.9"
55-
chrono = "0.4.20"
56-
garde = { version = "0.20", features = ["derive", "serde"] }
54+
garde-actix-web = "0.11"
55+
chrono = "0.4"
56+
garde = { version = "0.22", features = ["derive", "serde"] }
5757
rust_decimal = "1"
58-
serde_qs = "0.13"
59-
shuttle-runtime = { version = "0.46", default-features = false }
58+
serde_qs = "0.14"
59+
shuttle-runtime = { version = "0.53", default-features = false }
6060
uuid = { version = "1", features = ["serde", "v4"] }
6161
url = "2"
6262

apistos-core/src/api_component.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ use crate::ApiErrorComponent;
33
use crate::{PathItemDefinition, ResponseWrapper};
44
#[cfg(feature = "actix")]
55
use actix_web::Either;
6+
use apistos_models::Schema;
67
use apistos_models::paths::{MediaType, Parameter, RequestBody, Response, Responses};
78
use apistos_models::reference_or::ReferenceOr;
89
use apistos_models::security::SecurityScheme;
9-
use apistos_models::Schema;
1010
#[cfg(feature = "actix")]
1111
use schemars::schema::SubschemaValidation;
1212
use schemars::schema::{ArrayValidation, InstanceType, SchemaObject, SingleOrVec};

apistos-core/src/components/empty.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use crate::ApiComponent;
22
use actix_web::dev::Payload;
33
use actix_web::{HttpRequest, HttpResponse};
4-
use apistos_models::reference_or::ReferenceOr;
54
use apistos_models::Schema;
5+
use apistos_models::reference_or::ReferenceOr;
66

77
macro_rules! empty_component_impl {
88
($($ty:ty),+) => {

apistos-core/src/components/form.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::ApiComponent;
22
use actix_web::web::Form;
3-
use apistos_models::reference_or::ReferenceOr;
43
use apistos_models::Schema;
4+
use apistos_models::reference_or::ReferenceOr;
55

66
impl<T> ApiComponent for Form<T>
77
where

apistos-core/src/components/json.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::ApiComponent;
22
use actix_web::web::Json;
3-
use apistos_models::reference_or::ReferenceOr;
43
use apistos_models::Schema;
4+
use apistos_models::reference_or::ReferenceOr;
55

66
impl<T> ApiComponent for Json<T>
77
where

apistos-core/src/components/multipart.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
use crate::ApiComponent;
2+
use actix_multipart::Multipart;
23
use actix_multipart::form::text::Text;
34
use actix_multipart::form::{MultipartCollect, MultipartForm};
4-
use actix_multipart::Multipart;
5+
use apistos_models::Schema;
56
use apistos_models::paths::{MediaType, RequestBody};
67
use apistos_models::reference_or::ReferenceOr;
7-
use apistos_models::Schema;
88
use serde::de::DeserializeOwned;
99
use std::collections::BTreeMap;
1010

apistos-core/src/components/parameters/header.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use crate::ApiComponent;
22
use actix_web::web::Header;
3+
use apistos_models::Schema;
34
use apistos_models::paths::{Parameter, ParameterDefinition, ParameterIn, ParameterStyle, RequestBody};
45
use apistos_models::reference_or::ReferenceOr;
5-
use apistos_models::Schema;
66

77
pub trait ApiHeader {
88
fn name() -> String;

apistos-core/src/components/parameters/path.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
use crate::ApiComponent;
22
use actix_web::web::Path;
3-
use apistos_models::paths::{Parameter, ParameterDefinition, ParameterIn, RequestBody};
4-
use apistos_models::reference_or::ReferenceOr;
53
use apistos_models::ObjectValidation;
64
use apistos_models::Schema;
5+
use apistos_models::paths::{Parameter, ParameterDefinition, ParameterIn, RequestBody};
6+
use apistos_models::reference_or::ReferenceOr;
77
use schemars::schema::{InstanceType, SingleOrVec};
88

99
impl<T> ApiComponent for Path<T>

apistos-core/src/components/parameters/query.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ use crate::ApiComponent;
33
use actix_web::web::Query;
44
#[cfg(feature = "lab_query")]
55
use actix_web_lab::extract::Query as LabQuery;
6+
use apistos_models::Schema;
67
use apistos_models::paths::ParameterStyle;
78
use apistos_models::paths::{Parameter, ParameterDefinition, ParameterIn, RequestBody};
89
use apistos_models::reference_or::ReferenceOr;
9-
use apistos_models::Schema;
1010
use apistos_models::{ObjectValidation, SchemaObject};
1111
#[cfg(all(feature = "lab_query", feature = "garde"))]
1212
use garde_actix_web::web::LabQuery as GardeLabQuery;
@@ -279,8 +279,8 @@ mod test {
279279
use apistos_models::paths::ParameterStyle;
280280
use apistos_models::paths::{Parameter, ParameterDefinition, ParameterIn};
281281
use apistos_models::reference_or::ReferenceOr;
282-
use schemars::schema::{InstanceType, NumberValidation, RootSchema, Schema, SchemaObject, SingleOrVec};
283282
use schemars::JsonSchema;
283+
use schemars::schema::{InstanceType, NumberValidation, RootSchema, Schema, SchemaObject, SingleOrVec};
284284
use serde::{Deserialize, Serialize};
285285
#[cfg(feature = "qs_query")]
286286
use serde_qs::actix::QsQuery;
@@ -299,9 +299,9 @@ mod test {
299299
fn schema() -> Option<(String, ReferenceOr<Schema>)> {
300300
let (name, schema) = {
301301
let schema_name = <Self as JsonSchema>::schema_name();
302-
let settings = schemars::gen::SchemaSettings::openapi3();
303-
let gen = settings.into_generator();
304-
let schema: RootSchema = gen.into_root_schema_for::<Self>();
302+
let settings = schemars::r#gen::SchemaSettings::openapi3();
303+
let generator = settings.into_generator();
304+
let schema: RootSchema = generator.into_root_schema_for::<Self>();
305305
(schema_name, ReferenceOr::Object(Schema::Object(schema.schema)))
306306
};
307307
Some((name, schema))

apistos-core/src/components/simple.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ macro_rules! simple_modifier {
1010
vec![]
1111
}
1212
fn raw_schema() -> Option<apistos_models::reference_or::ReferenceOr<apistos_models::Schema>> {
13-
let gen = schemars::gen::SchemaSettings::openapi3().into_generator();
13+
let generator = schemars::r#gen::SchemaSettings::openapi3().into_generator();
1414

1515
let schema: apistos_models::reference_or::ReferenceOr<apistos_models::Schema> =
16-
apistos_models::Schema::Object(gen.into_root_schema_for::<$ty>().schema).into();
16+
apistos_models::Schema::Object(generator.into_root_schema_for::<$ty>().schema).into();
1717
Some(schema)
1818
}
1919
fn schema() -> Option<(
@@ -67,10 +67,10 @@ impl<T: chrono::TimeZone> ApiComponent for chrono::DateTime<T> {
6767
}
6868

6969
fn raw_schema() -> Option<apistos_models::reference_or::ReferenceOr<apistos_models::Schema>> {
70-
let gen = schemars::gen::SchemaSettings::openapi3().into_generator();
70+
let generator = schemars::r#gen::SchemaSettings::openapi3().into_generator();
7171

7272
let schema: apistos_models::reference_or::ReferenceOr<apistos_models::Schema> =
73-
apistos_models::Schema::Object(gen.into_root_schema_for::<chrono::DateTime<T>>().schema).into();
73+
apistos_models::Schema::Object(generator.into_root_schema_for::<chrono::DateTime<T>>().schema).into();
7474
Some(schema)
7575
}
7676

apistos-core/src/error_component.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
use apistos_models::Schema;
12
use apistos_models::paths::Response;
23
use apistos_models::reference_or::ReferenceOr;
3-
use apistos_models::Schema;
44
use std::collections::BTreeMap;
55

66
pub trait ApiErrorComponent {

apistos-core/src/wrappers.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
use crate::{ApiComponent, PathItemDefinition};
22
use actix_web::{HttpRequest, HttpResponse, Responder};
3+
use apistos_models::Schema;
34
use apistos_models::components::Components;
45
use apistos_models::paths::Operation;
56
use apistos_models::reference_or::ReferenceOr;
6-
use apistos_models::Schema;
77
use pin_project::pin_project;
88
use std::future::Future;
99
use std::pin::Pin;

apistos-gen-test/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ repository.workspace = true
1313
rust-version.workspace = true
1414
license.workspace = true
1515

16-
[dependencies]
16+
[dev-dependencies]
1717
actix-multipart = { workspace = true }
1818
actix-web = { workspace = true }
1919
actix-web-grants = { workspace = true }

apistos-gen-test/src/tests/api_error_derive.rs

+14-10
Original file line numberDiff line numberDiff line change
@@ -84,18 +84,22 @@ fn api_component_with_schema() {
8484
error_responses.get("403").map(|r| r.description.clone()),
8585
Some("Forbidden".to_string())
8686
);
87-
assert!(error_responses
88-
.get("403")
89-
.map(|r| r.content.clone())
90-
.unwrap_or_default()
91-
.is_empty());
87+
assert!(
88+
error_responses
89+
.get("403")
90+
.map(|r| r.content.clone())
91+
.unwrap_or_default()
92+
.is_empty()
93+
);
9294
assert_eq!(
9395
error_responses.get("409").map(|r| r.description.clone()),
9496
Some("Too many requests".to_string())
9597
);
96-
assert!(error_responses
97-
.get("409")
98-
.map(|r| r.content.clone())
99-
.unwrap_or_default()
100-
.is_empty());
98+
assert!(
99+
error_responses
100+
.get("409")
101+
.map(|r| r.content.clone())
102+
.unwrap_or_default()
103+
.is_empty()
104+
);
101105
}

apistos-gen/src/internal/components.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use proc_macro2::TokenStream;
2-
use quote::{quote, ToTokens};
2+
use quote::{ToTokens, quote};
33
use syn::Type;
44

55
pub(crate) struct Components<'a> {
@@ -8,7 +8,7 @@ pub(crate) struct Components<'a> {
88
pub(crate) error_codes: &'a [u16],
99
}
1010

11-
impl<'a> ToTokens for Components<'a> {
11+
impl ToTokens for Components<'_> {
1212
fn to_tokens(&self, tokens: &mut TokenStream) {
1313
let args = self.args;
1414
let responder_wrapper = self.responder_wrapper;

apistos-gen/src/internal/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use crate::internal::components::Components;
22
use crate::internal::operation::Operation;
33
use crate::operation_attr::OperationAttr;
4-
use proc_macro2::{Span, TokenStream as TokenStream2};
54
use proc_macro_error::{abort, emit_error};
5+
use proc_macro2::{Span, TokenStream as TokenStream2};
66
use quote::quote;
77

88
use syn::{
@@ -227,7 +227,7 @@ fn extract_fn_arguments_types(item_ast: &ItemFn, skipped_args: &[Ident]) -> Vec<
227227
.iter()
228228
.filter_map(|inp| match inp {
229229
FnArg::Receiver(_) => None,
230-
FnArg::Typed(ref t) => match *t.pat.clone() {
230+
FnArg::Typed(t) => match *t.pat.clone() {
231231
Pat::Ident(pi) => {
232232
if skipped_args.contains(&pi.ident) {
233233
None

apistos-gen/src/internal/operation.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::internal::security::Security;
22
use proc_macro2::TokenStream;
3-
use quote::{quote, ToTokens};
3+
use quote::{ToTokens, quote};
44
use std::collections::BTreeMap;
55
use syn::Type;
66

@@ -18,7 +18,7 @@ pub(crate) struct Operation<'a> {
1818
pub(crate) produces: Option<&'a String>,
1919
}
2020

21-
impl<'a> ToTokens for Operation<'a> {
21+
impl ToTokens for Operation<'_> {
2222
fn to_tokens(&self, tokens: &mut TokenStream) {
2323
let args = self.args;
2424
let responder_wrapper = self.responder_wrapper;

apistos-gen/src/internal/schemas.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use proc_macro2::TokenStream;
2-
use quote::{quote, ToTokens};
2+
use quote::{ToTokens, quote};
33

44
pub(crate) struct Schemas {
55
pub(crate) deprecated: bool,
@@ -57,9 +57,9 @@ impl ToTokens for Schemas {
5757

5858
tokens.extend(quote! {
5959
fn child_schemas() -> Vec<(String, apistos::reference_or::ReferenceOr<apistos::Schema>)> {
60-
let settings = schemars::gen::SchemaSettings::openapi3();
61-
let mut gen = settings.into_generator();
62-
let schema: apistos::RootSchema = gen.into_root_schema_for::<Self>();
60+
let settings = schemars::r#gen::SchemaSettings::openapi3();
61+
let mut generator = settings.into_generator();
62+
let schema: apistos::RootSchema = generator.into_root_schema_for::<Self>();
6363

6464
let mut schemas: Vec<(String, apistos::reference_or::ReferenceOr<apistos::Schema>)> = vec![];
6565
for (def_name, mut def) in schema.definitions {
@@ -79,9 +79,9 @@ impl ToTokens for Schemas {
7979
fn schema() -> Option<(String, apistos::reference_or::ReferenceOr<apistos::Schema>)> {
8080
let (name, schema) = {
8181
let schema_name = <Self as schemars::JsonSchema>::schema_name();
82-
let settings = schemars::gen::SchemaSettings::openapi3();
83-
let mut gen = settings.into_generator();
84-
let mut schema: apistos::RootSchema = gen.into_root_schema_for::<Self>();
82+
let settings = schemars::r#gen::SchemaSettings::openapi3();
83+
let mut generator = settings.into_generator();
84+
let mut schema: apistos::RootSchema = generator.into_root_schema_for::<Self>();
8585
if let Some(one_of) = schema.schema.subschemas.as_mut().and_then(|s| s.one_of.as_mut()) {
8686
#update_one_of_title
8787
}

apistos-gen/src/internal/security/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use proc_macro2::TokenStream;
2-
use quote::{quote, ToTokens};
2+
use quote::{ToTokens, quote};
33
use std::collections::BTreeMap;
44
use syn::Type;
55

@@ -10,7 +10,7 @@ pub(crate) struct Security<'a> {
1010
pub(crate) scopes: &'a BTreeMap<String, Vec<String>>,
1111
}
1212

13-
impl<'a> ToTokens for Security<'a> {
13+
impl ToTokens for Security<'_> {
1414
fn to_tokens(&self, tokens: &mut TokenStream) {
1515
let args = self.args;
1616
let scopes = if self.scopes.is_empty() {

apistos-gen/src/internal/security/models.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use darling::FromMeta;
22
use proc_macro2::TokenStream;
3-
use quote::{quote, ToTokens};
3+
use quote::{ToTokens, quote};
44

55
#[derive(FromMeta, Clone)]
66
#[darling(rename_all = "snake_case")]

apistos-gen/src/lib.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ use crate::openapi_header_attr::parse_openapi_header_attrs;
1111
use crate::openapi_security_attr::parse_openapi_security_attrs;
1212
use crate::operation_attr::parse_openapi_operation_attrs;
1313
use convert_case::{Case, Casing};
14-
use darling::ast::NestedMeta;
1514
use darling::Error;
15+
use darling::ast::NestedMeta;
1616
use proc_macro::TokenStream;
17+
use proc_macro_error::{OptionExt, abort, proc_macro_error};
1718
use proc_macro2::Span;
18-
use proc_macro_error::{abort, proc_macro_error, OptionExt};
1919
use quote::{format_ident, quote};
2020
use syn::{DeriveInput, GenericParam, Ident, ItemFn};
2121

@@ -76,7 +76,7 @@ pub fn derive_api_type(input: TokenStream) -> TokenStream {
7676
#component_name.to_string()
7777
}
7878

79-
fn json_schema(_gen: &mut schemars::gen::SchemaGenerator) -> apistos::Schema {
79+
fn json_schema(_generator: &mut schemars::r#gen::SchemaGenerator) -> apistos::Schema {
8080
let instance_type = <Self as TypedSchema>::schema_type();
8181
apistos::Schema::Object(apistos::SchemaObject {
8282
instance_type: Some(apistos::SingleOrVec::Single(Box::new(instance_type))),

apistos-gen/src/openapi_cookie_attr.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use crate::internal::schemas::Schemas;
22
use darling::FromMeta;
3-
use proc_macro2::{Span, TokenStream};
43
use proc_macro_error::abort;
5-
use quote::{quote, ToTokens};
4+
use proc_macro2::{Span, TokenStream};
5+
use quote::{ToTokens, quote};
66
use syn::Attribute;
77

88
pub(crate) fn parse_openapi_cookie_attrs(

0 commit comments

Comments
 (0)