mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-10-31 18:17:13 +08:00 
			
		
		
		
	refactor(router): move api models into separate crate (#103)
This commit is contained in:
		
							
								
								
									
										46
									
								
								crates/router/src/macros.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								crates/router/src/macros.rs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,46 @@ | ||||
| #[macro_export] | ||||
| macro_rules! newtype_impl { | ||||
|     ($is_pub:vis, $name:ident, $ty_path:path) => { | ||||
|         impl std::ops::Deref for $name { | ||||
|             type Target = $ty_path; | ||||
|  | ||||
|             fn deref(&self) -> &Self::Target { | ||||
|                 &self.0 | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         impl std::ops::DerefMut for $name { | ||||
|             fn deref_mut(&mut self) -> &mut Self::Target { | ||||
|                 &mut self.0 | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         impl From<$ty_path> for $name { | ||||
|             fn from(ty: $ty_path) -> Self { | ||||
|                 Self(ty) | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         impl $name { | ||||
|             pub fn into_inner(self) -> $ty_path { | ||||
|                 self.0 | ||||
|             } | ||||
|         } | ||||
|     }; | ||||
| } | ||||
|  | ||||
| #[macro_export] | ||||
| macro_rules! newtype { | ||||
|     ($is_pub:vis $name:ident = $ty_path:path) => { | ||||
|         $is_pub struct $name(pub $ty_path); | ||||
|  | ||||
|         $crate::newtype_impl!($is_pub, $name, $ty_path); | ||||
|     }; | ||||
|  | ||||
|     ($is_pub:vis $name:ident = $ty_path:path, derives = ($($trt:path),*)) => { | ||||
|         #[derive($($trt),*)] | ||||
|         $is_pub struct $name(pub $ty_path); | ||||
|  | ||||
|         $crate::newtype_impl!($is_pub, $name, $ty_path); | ||||
|     }; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 ItsMeShashank
					ItsMeShashank