macros: Move ensure_feature_presence check from ruma_api to request / response
This commit is contained in:
		
							parent
							
								
									2451f33a64
								
							
						
					
					
						commit
						7d018897b0
					
				| @ -50,8 +50,6 @@ pub struct Api { | ||||
| 
 | ||||
| impl Api { | ||||
|     pub fn expand_all(self) -> TokenStream { | ||||
|         let maybe_feature_error = ensure_feature_presence().map(syn::Error::to_compile_error); | ||||
| 
 | ||||
|         let ruma_common = import_ruma_common(); | ||||
| 
 | ||||
|         let metadata = &self.metadata; | ||||
| @ -73,8 +71,6 @@ impl Api { | ||||
|         let metadata_doc = format!("Metadata for the `{}` API endpoint.", name.value()); | ||||
| 
 | ||||
|         quote! { | ||||
|             #maybe_feature_error | ||||
| 
 | ||||
|             // For some reason inlining the expression causes issues with macro parsing
 | ||||
|             const _RUMA_API_VERSION_HISTORY: #ruma_common::api::VersionHistory = #history; | ||||
| 
 | ||||
|  | ||||
| @ -10,6 +10,7 @@ use syn::{ | ||||
| 
 | ||||
| use super::{ | ||||
|     attribute::{DeriveRequestMeta, RequestMeta}, | ||||
|     ensure_feature_presence, | ||||
|     util::collect_lifetime_idents, | ||||
| }; | ||||
| use crate::util::import_ruma_common; | ||||
| @ -21,12 +22,16 @@ pub fn expand_request(attr: RequestAttr, item: ItemStruct) -> TokenStream { | ||||
|     let ruma_common = import_ruma_common(); | ||||
|     let ruma_macros = quote! { #ruma_common::exports::ruma_macros }; | ||||
| 
 | ||||
|     let maybe_feature_error = ensure_feature_presence().map(syn::Error::to_compile_error); | ||||
| 
 | ||||
|     let error_ty = attr.0.first().map_or_else( | ||||
|         || quote! { #ruma_common::api::error::MatrixError }, | ||||
|         |DeriveRequestMeta::Error(ty)| quote! { #ty }, | ||||
|     ); | ||||
| 
 | ||||
|     quote! { | ||||
|         #maybe_feature_error | ||||
| 
 | ||||
|         #[derive(
 | ||||
|             Clone, | ||||
|             Debug, | ||||
|  | ||||
| @ -9,7 +9,10 @@ use syn::{ | ||||
|     DeriveInput, Field, Generics, Ident, ItemStruct, Lifetime, Token, Type, | ||||
| }; | ||||
| 
 | ||||
| use super::attribute::{DeriveResponseMeta, ResponseMeta}; | ||||
| use super::{ | ||||
|     attribute::{DeriveResponseMeta, ResponseMeta}, | ||||
|     ensure_feature_presence, | ||||
| }; | ||||
| use crate::util::import_ruma_common; | ||||
| 
 | ||||
| mod incoming; | ||||
| @ -19,6 +22,8 @@ pub fn expand_response(attr: ResponseAttr, item: ItemStruct) -> TokenStream { | ||||
|     let ruma_common = import_ruma_common(); | ||||
|     let ruma_macros = quote! { #ruma_common::exports::ruma_macros }; | ||||
| 
 | ||||
|     let maybe_feature_error = ensure_feature_presence().map(syn::Error::to_compile_error); | ||||
| 
 | ||||
|     let error_ty = attr | ||||
|         .0 | ||||
|         .iter() | ||||
| @ -29,6 +34,8 @@ pub fn expand_response(attr: ResponseAttr, item: ItemStruct) -> TokenStream { | ||||
|         .unwrap_or_else(|| quote! { #ruma_common::api::error::MatrixError }); | ||||
| 
 | ||||
|     quote! { | ||||
|         #maybe_feature_error | ||||
| 
 | ||||
|         #[derive(
 | ||||
|             Clone, | ||||
|             Debug, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user