Remove requirement for derive_more attributes to be in scope when using quantity_type!

This commit is contained in:
Zachary Sunforge
2024-10-29 08:58:36 -07:00
parent 60c9bbfee4
commit dae7ae8a98
6 changed files with 18 additions and 13 deletions

View File

@ -30,11 +30,11 @@ impl Parse for QuantityInput {
}
}
//TODO: Remove requirement for physical::quantity::{Quantity, Value}
/// The following imports must be in scope for this macro to work
/// ```
/// use physical::quantity::{Quantity, Value};
/// use derive_more::{Add, AddAssign, Display, Sub, SubAssign};
/// use generate_quantity::quantity_type;
/// use physical::quantity::{Quantity, Value};
/// ```
#[proc_macro]
pub fn quantity_type(input: TokenStream) -> TokenStream {
@ -98,7 +98,17 @@ pub fn quantity_type(input: TokenStream) -> TokenStream {
//----- Output Code ----------------------------------
let expanded = quote! {
#[derive(Copy, Clone, PartialEq, PartialOrd, Add, AddAssign, Sub, SubAssign, Display)]
#[derive(
Copy,
Clone,
PartialEq,
PartialOrd,
derive_more::Add,
derive_more::AddAssign,
derive_more::Sub,
derive_more::SubAssign,
derive_more::Display
)]
#[display(fmt = "{} {}", _0, "Self::symbol()")]
#[repr(transparent)]
pub struct #struct_name<V: Value>(pub V);