identifiers: Add Into Box & Arc, and PartialEq Arc (#1235)
* Add Into Box & Arc, and PartialEq Arc * change into to from * Apply suggestions from code review Co-authored-by: Jonas Platte <jplatte@element.io> Co-authored-by: Jonas Platte <jplatte@element.io>
This commit is contained in:
		
							parent
							
								
									e2d0e4cf20
								
							
						
					
					
						commit
						8f8937b29e
					
				| @ -313,6 +313,24 @@ fn expand_owned_id(input: &ItemStruct) -> TokenStream { | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         impl #impl_generics From<#owned_ty> for Box<#id_ty> { | ||||
|             fn from(a: #owned_ty) -> Box<#id_ty> { | ||||
|                 #[cfg(not(any(ruma_identifiers_storage = "Arc")))] | ||||
|                 { a.inner } | ||||
|                 #[cfg(ruma_identifiers_storage = "Arc")] | ||||
|                 { a.inner.as_ref().into() } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         impl #impl_generics From<#owned_ty> for std::sync::Arc<#id_ty> { | ||||
|             fn from(a: #owned_ty) -> std::sync::Arc<#id_ty> { | ||||
|                 #[cfg(not(any(ruma_identifiers_storage = "Arc")))] | ||||
|                 { a.inner.into() } | ||||
|                 #[cfg(ruma_identifiers_storage = "Arc")] | ||||
|                 { a.inner } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         impl #impl_generics std::fmt::Display for #owned_ty { | ||||
|             fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { | ||||
|                 write!(f, "{}", self.as_str()) | ||||
| @ -400,6 +418,18 @@ fn expand_owned_id(input: &ItemStruct) -> TokenStream { | ||||
|                 AsRef::<#id_ty>::as_ref(self) == AsRef::<#id_ty>::as_ref(other) | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         impl #impl_generics PartialEq<std::sync::Arc<#id_ty>> for #owned_ty { | ||||
|             fn eq(&self, other: &std::sync::Arc<#id_ty>) -> bool { | ||||
|                 AsRef::<#id_ty>::as_ref(self) == AsRef::<#id_ty>::as_ref(other) | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         impl #impl_generics PartialEq<#owned_ty> for std::sync::Arc<#id_ty> { | ||||
|             fn eq(&self, other: &#owned_ty) -> bool { | ||||
|                 AsRef::<#id_ty>::as_ref(self) == AsRef::<#id_ty>::as_ref(other) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user