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 /// 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 generate_quantity::quantity_type;
/// use physical::quantity::{Quantity, Value};
/// ``` /// ```
#[proc_macro] #[proc_macro]
pub fn quantity_type(input: TokenStream) -> TokenStream { pub fn quantity_type(input: TokenStream) -> TokenStream {
@ -98,7 +98,17 @@ pub fn quantity_type(input: TokenStream) -> TokenStream {
//----- Output Code ---------------------------------- //----- Output Code ----------------------------------
let expanded = quote! { 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()")] #[display(fmt = "{} {}", _0, "Self::symbol()")]
#[repr(transparent)] #[repr(transparent)]
pub struct #struct_name<V: Value>(pub V); pub struct #struct_name<V: Value>(pub V);

View File

@ -1,5 +1,4 @@
use crate::quantity::{Quantity, Value}; use crate::quantity::{Quantity, Value};
use derive_more::{Add, AddAssign, Display, Sub, SubAssign};
use generate_quantity::quantity_type; use generate_quantity::quantity_type;
//----- Watter per Square Meter ---------------------------------- //----- Watter per Square Meter ----------------------------------

View File

@ -1,4 +1,3 @@
use derive_more::{Add, AddAssign, Display, Sub, SubAssign};
use generate_quantity::quantity_type; use generate_quantity::quantity_type;
use crate::quantity::{Quantity, Value}; use crate::quantity::{Quantity, Value};

View File

@ -1,4 +1,3 @@
use derive_more::{Add, AddAssign, Display, Sub, SubAssign};
use generate_quantity::quantity_type; use generate_quantity::quantity_type;
use crate::quantity::{DECI, Quantity, Value}; use crate::quantity::{DECI, Quantity, Value};

View File

@ -1,4 +1,3 @@
use derive_more::{Add, AddAssign, Display, Sub, SubAssign};
use generate_quantity::quantity_type; use generate_quantity::quantity_type;
use crate::quantity::{Quantity, Value}; use crate::quantity::{Quantity, Value};

View File

@ -1,5 +1,4 @@
use crate::quantity::{Quantity, Value}; use crate::quantity::{Quantity, Value};
use derive_more::{Add, AddAssign, Display, Sub, SubAssign};
use generate_quantity::quantity_type; use generate_quantity::quantity_type;
//----- Liters per Minute ---------------------------------- //----- Liters per Minute ----------------------------------